我有一个名为temp的字符串,它的开头设置为"void"。我希望while语句等待用户在文本框中输入一些字符,然后再重新评估while循环?目前,它打印"输入数据",然后继续将temp的值设置为null。我该怎么做呢?
String temp = "VOID";
while(UserScreen.textField.getText().equals("") && temp == "")
{
UserScreen.messageAppend("Enter data");
temp = UserScreen.textField.getText();
UserScreen.messageAppend(temp);
}
您使用的textfield的getText()方法不是一个阻塞方法,因此一旦调用就会立即执行。你最好的选择是在文本字段中附加一个监听器,例如:
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
temp = UserScreen.textField.getText();
UserScreen.messageAppend(temp);
}
});
当你按下回车键时,听众会被呼叫。如果您需要监听文本字段中的每一个更改,请改用documentListener:
textField.getDocument().addDocumentListener(new DocumentListener() { ... });
使用JTextField
,可以使用KeyListener
接收键盘事件(击键)。类似这样的东西:
KeyListener keyListener = new KeyListener() {
public void keyPressed(KeyEvent keyEvent) {
// here you validation
}
}
nameTextField.addKeyListener(keyListener);
温度也是VOID,因此应为temp.equals("VOID")
while(UserScreen.textField.getText().equals("") && temp.equals("VOID"))