Как было предложено другими, вы должны использовать назначить прослушиватель кнопке, которая будет вызываться при нажатии кнопки.
Вот неполный пример, иллюстрирующий, как использовать ActionListener
и реализации его actionPerformed
метод, который вызывается при нажатии кнопки:
...
final JTextField textField = new JTextField();
final JButton okButton = new JButton("OK");
okButton.addActionListner(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
if ("some text".equals(textField.getText()))
System.out.println("Yes, text matches.");
else
System.out.println("No, text does not match.");
}
});
...
Вы можете просто хотите реализовать ActionListener
в классе, где кнопка и текст поле, поэтому вам не нужно объявлять два объекта как final
. (Я просто использовал анонимный внутренний класс, чтобы сохранить пример коротким.)
Для получения дополнительной информации, вы можете взглянуть на How to Write an Action Listener от The Java Tutorials.
Кроме того, для общей информации о том, как работают события в Java, полезно использовать Lesson: Writing Event Listeners из учебных пособий по Java.
Edit: Изменено выражение внутри if
заявления от textField.getText().equals("some text")
к "some text".equals(textField.getText())
для того, чтобы предотвратить NullPointerException
если textField
был null
, за предложение от г Shiny и комментарии New'S.
Я рекомендую делать "некоторый текст" .equals (textField.getText()), чтобы не допустить исключения нулевого указателя, если GetText() возвращает нуль. Хорошая привычка проникать, когда вы сравниваете константу с переменной. – 2008-12-02 19:08:26
А, спасибо, что указали это! Я отредактировал ответ, чтобы принять во внимание ваше предложение. – coobird 2008-12-03 01:29:09