2013-06-01 3 views
1

У меня есть 2 jbuttons в моем приложении java. У меня есть 2 jpanels. эти 2 jpanels имеют различное содержимое, не связанное с eachother. теперь я хочу, чтобы всякий раз, когда пользователь нажимает кнопку, соответствующий экран jpanel должен отображаться, но в том же месте (jpanels имеют разную ширину & height).Как остановить переопределение двух jpanels в java

, когда я пытался сделать это в NetBeans один JPanel входит в другой JPanel

private void button1ActionPerformed(java.awt.event.ActionEvent evt) 
{ 
// TODO add your handling code here: 

button1panel.setVisible(true); 
//all other panel's visibility is false 
} 

как и для button2 я имею ActionListener как этот

private void button2ActionPerformed(java.awt.event.ActionEvent evt) 
{ 
// TODO add your handling code here: 
//all other panel's visibility is false 
button2panel.setVisible(true); 
} 

я поместил эти 2 панели один выше другой (button2panel over button1panel), чтобы я мог получить к нему доступ в том же месте

но как кнопка2панель мала по ширине & height, когда я вызываю button2panel.setVisible (true), он фактически не включен.

моя демонстрация говорит, что, поскольку кнопка2панель находится внутри кнопки 1panel &, видимость кнопки1panel является ложной, поэтому ее происходит.

, что я могу сделать, это просто взять button2panel вне button1panel, но если я это сделать, то расположение панели будет отличаться

, как это исправить ??

или любое лучшее решение для этого ??

+0

Вот один рабочий пример (http://stackoverflow.com/a/12059031/1057230), кроме учебников :-) Или вы можете использовать 'GridBagLayout', если хотите ширину и высоту соответствующего' JPanel' s, чтобы оставаться таким же, как этот [пример] (http://stackoverflow.com/a/11166903/1057230) предлагает –

ответ

4

См. Раздел из руководства Swing по адресу How to Use Card Layout, который делает то, что вы хотите. CardLayout wil делает панели одинакового размера, что лучше, чем изменение размера кадра при смене панелей.

+0

Я не знаю много о cardlayout, я работал с макетом мешков, но не макет карты может помочь мне с псевдо код –

+2

Для этого и предназначен учебник. Он содержит рабочий пример. Загрузите код и поиграйте с ним. – camickr

1

Предлагаю вам ознакомиться с A Visual Guide to Layout Managers, чтобы помочь вам выбрать лучший LayoutManager для использования в вашей конкретной ситуации. LayoutManager - это мощный инструмент, предоставляемый платформой Swing. Они вычисляют местоположение и размер компонентов GUI для вас на основе минимального количества параметров, которые вы поставляете.

+0

can u plz помогите мне с cardlayout, как было предложено выше. Он выполняет мое требование, но как его реализовать ??? –

+2

Прочтите учебник. Вот почему была дана ссылка. Мы здесь не для написания кода. Пример учебника - прямолинейный. Почему, по вашему мнению, любой код, который мы пишем, будет другим? – camickr

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