gpt4 book ai didi

java - 在 Eclipse 中解析来自 GUI 而不是控制台的输入

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:36 24 4
gpt4 key购买 nike

我有一个带有文本框和提交按钮的小型 GUI 项目。我想要做的是让用户在文本框中键入内容并提交一个输入,以便他们在程序中移动(例如 1 进入下一个菜单)。该程序没有使用 GUI,而是使用控制台来输入(如第一个代码所示),因此我想将程序从控制台移开。

现在我的主要是:

    public static void main(String[] args)  {
//Initialize menu variable
Menu menu = MainMenu.getInstance();

new Console();
while (true){
//Display current menu
menu.displayMenu();
while (menu.moreInputNeeded()){
menu.displayPrompt();
try {
// Process user input.
menu.parseInput(new BufferedReader(new InputStreamReader(System.in)).readLine());
} catch (IOException e) {
// printStackTrace();
System.out.println(Prompt.INVALID_INPUT);
}
}

menu = menu.getNextMenu();
}
}

我使用文本/提交按钮,如下所示:

        //Create the Text Box
JTextField textField = new JTextField(20);

//Submit Button
JButton submit = new JButton("Submit");


//Submit Function
submit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
menuinput = textField.getText();
textField.setText("");

//
System.out.println(menuinput);

}
});

那么是否可以处理来自 GUI 而不是控制台的用户输入?

最佳答案

我能够弄清楚我自己的问题。我实现了:

    //Variables
JTextField tfIn;
JLabel lblOut;
private final PipedInputStream inPipe = new PipedInputStream();
private final PipedInputStream outPipe = new PipedInputStream();
PrintWriter inWriter;

String input = null;
Scanner inputReader = new Scanner(System.in);
//Variables

System.setIn(inPipe);
try {
System.setOut(new PrintStream(new PipedOutputStream(outPipe), true));
inWriter = new PrintWriter(new PipedOutputStream(inPipe), true);
}
catch(IOException e) {
System.out.println("Error: " + e);
return;
}
tfIn = new JTextField();
tfIn.addActionListener(this);
frame.add(tfIn, BorderLayout.SOUTH);

使用方法:

    public synchronized void actionPerformed(ActionEvent evt)
{
textArea.setText("");
String text = tfIn.getText();
tfIn.setText("");
inWriter.println(text);
}

可能还有其他一些小方面我错过了,但这是最重要的部分。

关于java - 在 Eclipse 中解析来自 GUI 而不是控制台的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39441875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com