如何在 JTextField 中多次捕获用户输入
How to capture user input multiple times in a JTextField
你能帮我解决这个小问题吗?
我正在尝试制作一个在 JEditorPane 中显示选项的菜单系统,它是这样的:
欢迎光临
Select一个选项。
1.) 新注册。
2.) 新输入。
3.) 退出。
选项由用户通过 JTextField 选择,当输入“1”时,它会显示另一个菜单:
新注册
1.) 选项 X。
2.) 选项 Y。
3.) 返回。
等等,问题是我不知道如何在 JTextField 中捕获用户的输入、前进到下一个菜单以及重新捕获用户的输入。
textField.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e) {
String cap = "";
cap = textField.getText();
switch(cap) {
case "1":
paintEditorPane("Welcome");
// here is my problem, I don't know how to re-capture JTextField input
switch(cap){
case "1":
paintEditorPane("NewRegister");
break;
}
break;
}
}
});
这是基本的。现在你要做出很多案例来判断状态。
public static class MainPanel extends JPanel{
private JTextArea textArea;
public MainPanel() {
this.setLayout(new BorderLayout());
this.textArea = new JTextArea();// you can use constructor to set Text but I like use method "setText".
this.textArea.addKeyListener(new keyHandler());
this.textArea.setText("Welcome\r\nSelect an option. 1.) New register. 2.) New input. 3.) Exit.\r\n");
this.textArea.setCaretPosition(this.textArea.getText().length());// move caret to last
this.add(this.textArea, BorderLayout.CENTER);
}
public void addText(String text) {textArea.setText(textArea.getText() + "\r\n" + text +"\r\n");}
public class keyHandler extends KeyAdapter{
@Override
public void keyReleased(KeyEvent e) {
switch(e.getKeyCode()){
case KeyEvent.VK_1 : addText("New register"); break;
case KeyEvent.VK_2 : addText("New input"); break;
case KeyEvent.VK_3 : addText("Exit"); break;
}
}
}
}
你能帮我解决这个小问题吗? 我正在尝试制作一个在 JEditorPane 中显示选项的菜单系统,它是这样的:
欢迎光临
Select一个选项。 1.) 新注册。 2.) 新输入。 3.) 退出。
选项由用户通过 JTextField 选择,当输入“1”时,它会显示另一个菜单:
新注册
1.) 选项 X。 2.) 选项 Y。 3.) 返回。
等等,问题是我不知道如何在 JTextField 中捕获用户的输入、前进到下一个菜单以及重新捕获用户的输入。
textField.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e) {
String cap = "";
cap = textField.getText();
switch(cap) {
case "1":
paintEditorPane("Welcome");
// here is my problem, I don't know how to re-capture JTextField input
switch(cap){
case "1":
paintEditorPane("NewRegister");
break;
}
break;
}
}
});
这是基本的。现在你要做出很多案例来判断状态。
public static class MainPanel extends JPanel{
private JTextArea textArea;
public MainPanel() {
this.setLayout(new BorderLayout());
this.textArea = new JTextArea();// you can use constructor to set Text but I like use method "setText".
this.textArea.addKeyListener(new keyHandler());
this.textArea.setText("Welcome\r\nSelect an option. 1.) New register. 2.) New input. 3.) Exit.\r\n");
this.textArea.setCaretPosition(this.textArea.getText().length());// move caret to last
this.add(this.textArea, BorderLayout.CENTER);
}
public void addText(String text) {textArea.setText(textArea.getText() + "\r\n" + text +"\r\n");}
public class keyHandler extends KeyAdapter{
@Override
public void keyReleased(KeyEvent e) {
switch(e.getKeyCode()){
case KeyEvent.VK_1 : addText("New register"); break;
case KeyEvent.VK_2 : addText("New input"); break;
case KeyEvent.VK_3 : addText("Exit"); break;
}
}
}
}