JTextField:当用户重置字段并放入新值时,如何使它识别值更改(更改侦听器)?

时间:2018-06-29 10:41:07

标签: java jtextfield changelistener

我目前有一个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。

如何使它对用户所做的更改敏感?这类事情是否有变更侦听器?

非常感谢!

萨拉

1 个答案:

答案 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()); 
           ...
        }
        ...
});