Слушатель изменения значения на JTextField - PullRequest
202 голосов
/ 17 октября 2010

Я хочу, чтобы окно сообщения появилось сразу после того, как пользователь изменит значение в текстовом поле.В настоящее время мне нужно нажать клавишу ввода, чтобы выскочило окно сообщения.Что-то не так с моим кодом?

textField.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {

        if (Integer.parseInt(textField.getText())<=0){
            JOptionPane.showMessageDialog(null,
                    "Error: Please enter number bigger than 0", "Error Message",
                    JOptionPane.ERROR_MESSAGE);
        }       
    }
}

Любая помощь будет признательна!

Ответы [ 12 ]

0 голосов
/ 27 апреля 2015

Я новичок в WindowBuilder и, на самом деле, через несколько лет просто возвращаюсь в Java, но я реализовал «кое-что», а затем подумал, что найду его и наткнулся на эту тему.1002 * Я нахожусь в процессе тестирования, поэтому, будучи новичком во всем этом, я уверен, что что-то упустил.

Вот что я сделал, где "runTxt" - это текстовое полеи "runName" является членом данных класса:

public void focusGained(FocusEvent e)
    {
    if (e.getSource() == runTxt)
        {
        System.out.println("runTxt got focus");
        runTxt.selectAll();
        }
    }
public void focusLost(FocusEvent e)
    {
    if (e.getSource() == runTxt)
        {
        System.out.println("runTxt lost focus");
        if(!runTxt.getText().equals(runName))runName= runTxt.getText();
        System.out.println("runText.getText()= " + runTxt.getText() + "; runName= " + runName);
        }
    }

Кажется, намного проще, чем то, что здесь до сих пор, и, кажется, работает, но, поскольку я нахожусь в середине написания этого,Я был бы признателен, если бы вы услышали о всех пропущенных ошибках.Является ли проблемой то, что пользователь мог ввести и оставить текстовое поле без внесения изменений?Я думаю, что все, что вы сделали, это ненужное задание.

0 голосов
/ 04 августа 2014

Используйте KeyListener (который срабатывает на любую клавишу), а не ActionListener (который срабатывает при вводе)

...