我目前有一个JTextField,它是一个空框,并在其旁边创建了一个Reset按钮,以便用户可以清除值(整数)并再次获得一个空框。代码如下:
maxFrames = new JTextField();
maxFrames.setBounds(200, 130, 40, 23);
getContentPane().add(maxFrames);
JLabel message5;
message5 = new JLabel();
message5.setText("Enter max frame number");
message5.setBounds(40, 130, 170, 23);
getContentPane().add(message5);
JButton addSetButton;
addSetButton = new JButton();
addSetButton.setText("Reset");
addSetButton.setBounds(243, 130, 60, 23);
getContentPane().add(addSetButton);
addSetButton.addActionListener(new ButtonListener());
public class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
maxFrames.setText("");
}
}
问题是,假设用户输入值“ 5”并运行插件。并且运行平稳。运行完成后,用户按下“ Reset”(重置)并使文本字段为空白,然后输入“ 3”。程序无法识别此值的更改,但仍采用值5。
如何使它对用户所做的更改敏感?这类事情是否有变更侦听器?
非常感谢!
萨拉
答案 0 :(得分:0)
您可以将DocumentListener添加到JTextFiled document
例如:
maxFrames = new JTextField();
maxFrames.getDocument().addDocumentListener(new DocumentListener() {
void changedUpdate(DocumentEvent e) {
Document doc = e.getDocument();
String newValue = doc.getText(0, doc.getLength());
...
}
...
});