我是 Swing 新手,正在 Eclipse 中制作一个非常基本的事件处理程序。这是我写的代码:
public class SwingDemo2 {
JLabel jl;
public SwingDemo2() {
JFrame jfr = new JFrame("Swing Event Handling");
jfr.setSize(250, 100);
jfr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jl = new JLabel();
jl.setVisible(false);
JButton jb1 = new JButton("OK");
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
jl.setText("You Pressed OK");
jl.setVisible(true);
}
});
JButton jb2 = new JButton("Reset");
jb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
jl.setText("You Pressed Reset");
jl.setVisible(true);
}
});
jfr.setLayout(new BorderLayout());
jfr.add(jl, SwingConstants.NORTH);
jfr.add(jb1, SwingConstants.EAST);
jfr.add(jb2, SwingConstants.WEST);
jfr.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new SwingDemo2();
}
});
}
}
Eclipse 提示我打开调试透视图,他向我显示错误:
Thread [AWT-EventQueue-0] (Suspended (exception IllegalArgumentException))
EventDispatchThread.run() line: not available [local variables unavailable]
当我使用FlowLayout
而不是BorderLayout
.
我一直在尝试在门户网站上查找有关错误的信息,我遇到了这个类似的问题。答案是在不解释问题的情况下更改一堆设置(这也无济于事)。请解释错误,以便我确保不再重复。提前谢谢!
注意:更新了错误信息