2013-05-02 4 views
0

Я хотел бы добавить кнопки в макете границы один за другим. Но я не знаю как . Вот часть моего кода:Добавить кнопки в макете границы

setLayout(new BorderLayout()); 
JPanel jp = new JPanel(); 
jp.setBackground(Color.BLUE); 
JPanel jp2 = new JPanel(); 
jp2.setBackground(Color.LIGHT_GRAY); 
JPanel jp3 = new JPanel(); 
jp3.setBackground(Color.WHITE); 

add(jp, BorderLayout.SOUTH); 
add(jp2, BorderLayout.EAST); 
add(jp3, BorderLayout.WEST); 

jp.add(btn, BorderLayout.WEST); 
jp.add(btn2, BorderLayout.CENTER); 
jp.add(btn3, BorderLayout.EAST); 

jp2.add(btn4, BorderLayout.NORTH); 
jp2.add(btn5, BorderLayout.NORTH); 
jp2.add(btn6, BorderLayout.CENTER); 
jp2.add(btn7, BorderLayout.SOUTH); 
jp2.add(btn8, BorderLayout.SOUTH); 

Но добавить кнопки бок о бок. Я начинающий программист, и я действительно не знаю, как это сделать.

ответ

1

BorderLayout не подходит для того, что вы хотите - он поддерживает только один компонент для каждого ограничения (север, юг ...)

Используйте другой макет, есть много вариантов, как Gridlayout, GridBagLayout.

Я бы использовал TableLayout, это очень гибкий макет - см. Адрес домашней страницы ниже. www.clearthought.info/sun/products/jfc/tsc/articles/tablelayout/

1

JPanel первоначально имеет FlowLayout, который размещает компоненты бок о бок. Вместо new JPanel() используйте new JPanel(new BorderLayout())

+1

Кроме того, 'BorderLayout' заменяет компоненты вместо добавления кратных. – afk5min

+0

Хорошо, я попробовал. – user2344333

+0

Точно, как упоминалось в @ afk5min, ваши bttn4 и bttn7 будут заменены на bttn5 и bttn8 resp. –

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