2016-11-27 3 views
0

学校で簡単な地雷除去ゲームを作成する必要があります。簡単な使い方のためにJButton-Arrayを作りたい。しかし、それは動作しません!私は解決策のために全インターネットを捜したように落ちた!多分私を助けてくれますか?ここでは、コードです:シンプルなボタン配列が機能しない

public class Minesweeper extends Applet { 

    public void init() { 

     //Frameinitialiing 

     JFrame frame = new JFrame("Minesweeper"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     int width = 800; 
     frame.setSize(width, width); 
     frame.setResizable(false); 
     frame.setLocation(0,0); 
     frame.setVisible(true); 


     //Game 

     JPanel panel = new JPanel(); 
     panel.setLayout(null); 
     frame.add(panel); 


     //Buttons 

     int w = 80; 

     JButton[][] button = new JButton[10][10]; 
     for (int i = 1; i == 9 ; i++) { 

      for (int j = 1; j == 9 ; j++) { 

       button[i][j].setBounds(i*80 , j*80 , w , w); 
       this.add(button[i][j]); 

      } 
     } 
    } 
} 
+0

何をして動作しませんし、あなたがそれを解決するために何をしようとしたのですか? –

+0

エラーメッセージが表示されていることを確認しました。何をしているのですか(解決方法は簡単です) – brummfondel

答えて

1

あなたのコードを変更する必要がある場所がたくさんあります。しかし、私はあなたのためにそれらを変更したすべての

JFrame frame = new JFrame("Minesweeper"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    int width = 800; 
    frame.setSize(width, width); 
    frame.setResizable(false); 
    frame.setLocation(0,0); 
    frame.setVisible(true); 

    int w = 80; 

    JButton[][] button = new JButton[10][10]; 
    for (int i = 0; i < 10 ; i++) { 

     for (int j = 0; j < 10 ; j++) { 
      button[i][j] = new JButton(); 
      button[i][j].setBounds(i*80 , j*80 , w , w); 
      frame.add(button[i][j]); 

     } 
    } 

まず、ループのために間違っています。あなたは数字を台無しにしたようだ。 2つのループは両方とも= 0< 10でなければなりません。あなたはnew JButton()を使用して、ボタンを初期化し忘れてしまったので、私はあなたのためにそれをやった

JPanel panel = new JPanel(); 
    panel.setLayout(null); 
    frame.add(panel); 

:また、私はこれらの3行を削除しました。

最後にthis.add(button[i][j])の代わりにframe.add(button[i][j])です。

それは次のようになります。

enter image description here

+0

ありがとうございました!しかし、これは私が今見ているものです:https://postimg.org/image/v3fkocdiz/ - 私の所在地に行くとボタンが現れます.... – Peaq

+0

うーん...それは変です。どういうわけか私はそのようなことをしませんでした。おそらく、これはJFrameレイアウトの内部動作と関係があります。いつでもインターネットで検索したり、別の質問をすることができます。私は座標を使用しないことをお勧めします。代わりに、 'FlowLayout'のように、awtが提供したレイアウトの1つを使用してください。 @Peaq – Sweeper

+0

ありがとう、ちょうどフレームの幅を微調整し、それは働いた:D! – Peaq

関連する問題