作業と、本当にこのコードのビットと困惑しています、何らかの理由で、私はデフォルトクローズ操作を設定すると、それは動作しません、と同じではありません。私はクラスをJFrameで拡張しました。私のプログラムには同じ名前の他のJFramesやJPanelsはありません。ああ、また、setVisibleとsetSizeは動作しますが、コンポーネントを追加したり、クローズ操作を設定したりするだけです。次に、makeWindow()の呼び出しを含むメソッドを呼び出すクラスを示します。setDefaultCloseOperationただGUIの使用を開始する
public static class Play implements ActionListener{
public void actionPerformed(ActionEvent e){
frame.setVisible(false);
game.playGame();
}
そして、ここでは、実際のメソッドです:
private void makeWindow() {
JFrame window = new JFrame("Battleships 2.0");
JPanel canvas = new JPanel();
JLabel title = new JLabel("Battleships 2.0");
title.setFont(font);
JTextField userCoordinates = new JTextField();
window.setSize(500,500);
window.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
window.setResizable(false);
window.setVisible(true);
canvas.setLayout(new BoxLayout(canvas, BoxLayout.Y_AXIS));
window.add(canvas);
canvas.add(title);
canvas.add(userCoordinates);
}
は 'window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)を使用してみてください;' – Hackerdarshi
"私はJFrameのと私のクラスを拡張してきた" ... 'JFrameのウィンドウ=新しいJFrameの( "戦艦2.0")で。 'あなたは普通の' JFrame'を作ります、どこが "あなたのクラス"ですか? –
JFrameでクラスを拡張した場合、なぜ別のJFrameを作成するのですか( 'window')?それだけでアクションを実行してください。ところで、それは悪い習慣です。 – Hackerdarshi