Неисправный слушатель событий JButton
-
03-10-2019 - |
Вопрос
Я создал в моем приложении Java Swing главное окно с jbutton. Я добавил к этой кнопке класс прослушивателя событий (реализующий интерфейс ActionListener), который, каждый раз, когда кнопка нажала, запускает «всплывающее окно». Способ работает нормально, когда кнопка нажала, за исключением того, что кнопка нажала в первый раз, так как это ничего не делает. Кто-нибудь знает причину такого поведения?
Решение
Проще говоря, возможно, предоставить AbstractAction
. Отказ Вы можете попробовать подход, указанный ниже. (Это показывает всплывающее окно, когда кнопка нажала.)
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) {
JFrame jf = new JFrame("Demo");
Container cp = jf.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JButton(new AbstractAction("Button Text") {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Hello World");
}
}));
jf.setSize(200, 200);
jf.setVisible(true);
}
}
Другие советы
Размещение кода обработчика событий, а также о том, как вы прикрепляете его к кнопке, может помочь. Возможно, вы хотели бы посмотреть на это Солнце Учебное пособие