これが機能しない理由はBallWorldFrame
、呼び出しようとしているメソッドがクラスにないためです。これを試して:
public class BallWorldFrame extends JFrame {
...
}
を拡張しているため、やJFrame
などのメソッドを利用できることに注意してください。setDefaultCloseOperation
setVisible
フレームを閉じるボタンを作成するには、ActionListener
. 次のようなことを試すことができます(すべてを単一のクラスに入れます):
public class BallWorld extends JFrame implements ActionListener {
private JButton x;
public BallWorld() {
x = new JButton("x");
x.addActionListener(this);
add(x);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new BallWorld();
}
public void actionPerformed(ActionEvent e) {
dispose(); // close the frame
}
}
フレームを閉じるためにクラスがどのように実装ActionListener
およびオーバーライドされているかに注目してください。とは、「「x」ボタンがクリックされたときに、クラスのメソッドで定義されたアクションを実行する、つまりフレームを閉じる」actionPerformed
ことを意味します。x.addActionListener(this)
actionPerformed