我在Java Swing应用程序中创建了一个带有JButton的主窗口。我在此按钮中添加了一个事件监听器类(实现ActionListener接口),每次单击该按钮时,都会启动一个“弹出”窗口。 单击按钮时该方法可以正常工作,除非第一次单击该按钮,因为它什么都不做。有谁知道这种行为背后的原因?
答案 0 :(得分:2)
更简单的方法可能是提供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);
}
}
答案 1 :(得分:1)
发布事件处理程序的代码以及如何将其附加到按钮可能会有所帮助。您可能需要快速查看此Sun Tutorial