2013-11-09 4 views
0

Я пытаюсь добавить JButtons в указанное место на GridLayout, но я не знаю, как это сделать, прямо сейчас у меня естьКак добавить JButtons в определенное место в gridlayout, внутри цикла?

public void addButtons() 
    { 
     myBoard = myController.getMyBoard(); 
     for (int i = 0; i < this.getEntryInt(); i++) 
     { 
      for(int j = 0 ; j < this.getEntryInt(); j++) 
      { 


       if(myBoard[i][j]==true) 
       { 
        buttons[i][j] = new JButton("Q"); // error: The type of the expression must be an array type but it resolved to JButton 

       } 
      } 
     } 
    } 

Есть ли способ, чтобы добавить кнопки определенного участка в сетке макет?

+0

Вы можете «добавить» JPanel с помощью BorderLayout в каждую позицию сетки (сохраняя ссылку в чем-то вроде массива) и вместо этого добавить/удалить кнопки;) – MadProgrammer

+0

Я вижу, что вы создаете JButton, но добавляете его ни к одному компоненту, поэтому он никогда не будет частью GUI. Вы знаете, а не создаете и размещаете кнопки «на лету», возможно, было бы лучше просто изменить текст на JButtons, которые уже показаны в графическом интерфейсе. –

+0

Также обратите внимание, что вместо 'if (myBoard [i] [j] == true)', более чисто использовать 'if (myBoard [i] [j])' –

ответ

1

Вы не можете выбрать, где разместить компоненты в GridLayout. Они будут добавляться последовательно.

Попробуйте использовать вместо этого GridBagLayout.

+0

Итак, когда вы проходите через gridlayout, он заполняет первый столбец, затем следующий? Я хочу сделать что-то вроде «если myBoard [i] [j] == true, добавить Jbutton (« Q »), если false, добавить JButton (« »); – user2909132

+1

@ user2909132:« Хорошо, когда вы идете через gridlayout, заполняет ли он первый столбец, затем следующий? »- попробуйте и узнайте. Кроме того, вместо создания кнопок« на лету », возможно, вы просто хотите изменить текст на JButtons, которые уже показаны на графическом интерфейсе. –

+0

хорошо Im делает панель NQueens, показывая одну возможность из того, что когда-либо есть. Не только изменение текста на уже существующих кнопках – user2909132

Смежные вопросы