私は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
。
私はポータルでエラーに関する情報を見つけようとしていましたが、この同様の質問に出くわしました。答えは、問題を説明せずに一連の設定を変更することです(これも役に立ちませんでした)。繰り返さないようにエラーを説明してください。よろしくお願いします!
注:エラーメッセージを更新しました