2015-10-27 4 views
0

Я делаю основную деку в Java, и я хочу его так, чтобы каждые 2 кнопки на другой линии, как:Есть ли способ, чтобы получить JButtons на новой линии, JOptionPane

(button) (button) 
(button) (button) 

Это мой код на данный момент

JPanel p = new JPanel(); 
JButton one = new JButton(sound1); 
JButton two = new JButton(sound2); 
JButton three = new JButton(sound3); 
JButton four = new JButton(sound4); 
JButton five = new JButton(sound5); 

p.add(one); 
p.add(two); 
p.add(three); 
p.add(four); 
p.add(five); 

int n = JOptionPane.showConfirmDialog(null, p, "Test", JOptionPane.OK_CANCEL_OPTION, -1); 

Что было бы самым простым способом сделать это? Если мне нужно переключиться на JFrame, дайте мне знать, я не возражаю, если это единственный вариант.

+0

Другой вариант - создать пользовательский ['JDialog'.] (Https://docs.oracle.com/javase/8/docs/api/javax/swing/JDialog.html). –

+0

Если вы использовали панель, это здорово! Просто установите желаемый макет – Adam111p

ответ

2

Просто используйте GridLayout в вашем JPanel:

JPanel p = new JPanel(new GridLayout(0, 2)); 

Первый аргумент является числом строк, второй из них является число столбцов. Если вы укажете число строк как 0, вы сообщите менеджеру макета, что вы просто хотите иметь два столбца и не знаете, сколько строк вам понадобится - строки будут создаваться динамически.

2

Вы можете использовать GridLayout, он представляет компоненты в таблице. как показано ниже, 3 - количество строк, 2 - количество столбцов.

p.setLayout(new GridLayout(3, 2)); 

    p.add(one); 
    p.add(two); 
    p.add(three); 
    p.add(four); 
    p.add(five); 
Смежные вопросы