有缺陷的JButton事件监听器

时间:2010-05-19 20:59:27

标签: java swing jbutton actionlistener

我在Java Swing应用程序中创建了一个带有JButton的主窗口。我在此按钮中添加了一个事件监听器类(实现ActionListener接口),每次单击该按钮时,都会启动一个“弹出”窗口。 单击按钮时该方法可以正常工作,除非第一次单击该按钮,因为它什么都不做。有谁知道这种行为背后的原因?

2 个答案:

答案 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