powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing
7 сообщений из 7, страница 1 из 1
Swing
    #33307343
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть окно на нем лежит тулбар, на тулбаре лежит 2 кнопки(к1 и к2).
Мне нужно, чтобы при нажатии на кнопку к1, на окно добавлялся класс1 который extend JPanel, а при нажатии на к2, класс 2,который также extend JPanel.
Делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   void  к1_actionPerformed(ActionEvent e) {
glav=  new  Класс1();
     if (company!= null )
contentPane.remove(company);
contentPane.add(glav,BorderLayout.CENTER);
 this .repaint();
  }
     
Для к2:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  void  к2_actionPerformed(ActionEvent e) {
company= new  Класс2();
       if (glav!= null )
contentPane.remove(glav);
contentPane.add(company,BorderLayout.CENTER);
 this .repaint();
  }
Нажимаю ничего не появляется, а когда растягиваю или сжимаю окно на котором это все лежит, появляется один из классов.Почему они не появляются сразу,я же поставил this.repaint();
Спасибо
...
Рейтинг: 0 / 0
Swing
    #33307435
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636
> Есть окно на нем лежит тулбар, на тулбаре лежит 2 кнопки(к1 и к2).
> Мне нужно, чтобы при нажатии на кнопку к1, на окно добавлялся
> класс1 который extend JPanel, а при нажатии на к2, класс 2,который
> также extend JPanel.
> Делаю так:
> void к1_actionPerformed(ActionEvent e) {glav=new
> Класс1();if(company!=null)contentPane.remove(company);
> contentPane.add(glav,BorderLayout.CENTER);this.repaint(); }
> Для к2:
> void к2_actionPerformed(ActionEvent e) {company=new
> Класс2();if(glav!=null)contentPane.remove(glav);
> contentPane.add(company,BorderLayout.CENTER);this.repaint(); }
> Нажимаю ничего не появляется, а когда растягиваю или сжимаю окно
> на котором это все лежит, появляется один из классов.Почему они не
> появляются сразу,я же поставил this.repaint();
> СпасибоТема==Ответить




из книги Swing - эффективные пользовательские интерфейсы быстро листая
нашел только:
glav.revalidate()

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Swing
    #33307441
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
peter6636
> Есть окно на нем лежит тулбар, на тулбаре лежит 2 кнопки(к1 и к2).
> Мне нужно, чтобы при нажатии на кнопку к1, на окно добавлялся
> класс1 который extend JPanel, а при нажатии на к2, класс 2,который
> также extend JPanel.
> Делаю так:
> void к1_actionPerformed(ActionEvent e) {glav=new
> Класс1();if(company!=null)contentPane.remove(company);
> contentPane.add(glav,BorderLayout.CENTER);this.repaint(); }
> Для к2:
> void к2_actionPerformed(ActionEvent e) {company=new
> Класс2();if(glav!=null)contentPane.remove(glav);
> contentPane.add(company,BorderLayout.CENTER);this.repaint(); }
> Нажимаю ничего не появляется, а когда растягиваю или сжимаю окно
> на котором это все лежит, появляется один из классов.Почему они не
> появляются сразу,я же поставил this.repaint();
> СпасибоТема==Ответить




кстати, подумал: а this к кому относится? кусок кода надо побольше

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Swing
    #33307455
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
Swing
    #33308196
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
this всегда отностися к экземпляру класса, в котором объявлен метод. Т.е. в данном случае - к обработчику.

Правильнее, мне кажется, добавить сразу оба класса, а по нажатию кнопок просто показывать/прятать панели.
...
Рейтинг: 0 / 0
Swing
    #33311267
Jozic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть така штука как Кардлейаут <code>java.awt.CardLayout
</code>. Если я правильно понял, то это то что Вам нужно.
Содержит в себе набор компонентов (как карты в колоде :) ) сверху всегда только один. Потом можно переключать на любой другой.
...
Рейтинг: 0 / 0
Swing
    #33311508
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JozicЕсть така штука как Кардлейаут <code>java.awt.CardLayout
</code>. Если я правильно понял, то это то что Вам нужно.
Содержит в себе набор компонентов (как карты в колоде :) ) сверху всегда только один. Потом можно переключать на любой другой.
Не правильно понял
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Swing
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]