2016-11-27 4 views
0

Мне нужно создать простую игру Minesweeper в школе. Я хочу сделать JButton-Array для легкого использования. Однако это не сработает! Я упал, как будто искал весь интернет для решения! Вы можете мне помочь? Вот код:Simple Button 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]); 

     } 
    } 

Прежде всего, цикл for неверен. Вы, кажется, испортили цифры. Две петли должны быть равны = 0 и < 10. Кроме того, я удалил эти три линии:

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

Вы забыли инициализировать кнопки с помощью new JButton(), так что я сделал это для вас.

И, наконец, это frame.add(button[i][j]) вместо this.add(button[i][j]).

Это выглядит следующим образом:

enter image description here

+0

Спасибо! Тем не менее, это то, что я вижу сейчас: https://postimg.org/image/v3fkocdiz/ - кнопки появляются, когда я просматриваю их местоположение .... – Peaq

+0

Хм ... Это странно. Я почему-то не понял. Возможно, это как-то связано с внутренней работой макетов JFrame. Вы всегда можете найти в Интернете или задать другой вопрос. Я рекомендую не использовать координаты. Вместо этого используйте один из предложенных макетов, например 'FlowLayout'. @Peaq – Sweeper

+0

Спасибо, я просто изменил ширину рамки, и она сработала: D! – Peaq