Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление компонентов в сплитере, Что я не так делаю? 
:(
    Опции темы
ShkVal
  Дата 11.11.2004, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Код
public class MainFrame extends JFrame {
   ApplicationData appData;

   JSplitPane splitPane;
   JMenuBar menu;
   Component leftPanel;
   Component rightPanel;

   public MainFrame(ApplicationData appData) throws HeadlessException {
       this.appData = appData;
       setTitle("EtherCAT");
       setBounds(000, 000, 1024, 700);
       getContentPane().setLayout(new BorderLayout());

       setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
       addWindowListener(new MainFrame.ExitListener());
       splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,rightPanel);
       splitPane.setResizeWeight(0.8);
       getContentPane().add(splitPane);

       setJMenuBar(menu);
   }

   public Component getRightPanel() {
       return rightPanel;
   }
   public void setRightPanel(Component rightPanel) {
       this.rightPanel = rightPanel;
   }

   public JMenuBar getMenu() {
       return menu;
   }
   public void setMenu(JMenuBar menuBar) {
       this.menu = menuBar;
   }
   public Component getLeftPanel() {
       return leftPanel;
   }
   public void setLeftPanel(Component leftPanel) {
       this.leftPanel = leftPanel;
   }


   private class ExitListener extends WindowAdapter implements ActionListener {
       public void actionPerformed(ActionEvent e) {
           doExit();
       }
       public void windowClosing(WindowEvent e) {
           doExit();
       }
       private void doExit() {
           //Make before exit
           System.exit(0);
       }
   }

}

//Функция main()
public class Main {

   ApplicationData appData = new ApplicationData();

   public static void main(String[] args) {
       Main main = new Main();
       main.parseModule();
       MainFrame frame=new MainFrame(main.appData);
       frame.setLeftPanel(new JTree());
       frame.setRightPanel(null);
       main.appData.setFrame(frame);
       main.appData.getFrame().show();
   }
}



Что я не так делаю.
Мне надо будет в процессе работы менять панели в сплитере. Я думал достаточно вызвать
frame.setLeftPanel(new JTree());
frame.setRightPanel(null);
и они сменяться. Оказалось этого недостаточно

Это сообщение отредактировал(а) Domestic Cat - 11.11.2004, 16:51
PM MAIL   Вверх
AntonSaburov
Дата 11.11.2004, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 118



А обновление экрана не помогает ?

И в следующий раз используй таг [code=java][/code]. А то текста и так не мало, да еще читать это в таком виде - сложно найти ответ на вопрос.
PM MAIL WWW ICQ   Вверх
ShkVal
Дата 11.11.2004, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Цитата(AntonSaburov @ 11.11.2004, 11:29)
А обновление экрана не помогает ?

И в следующий раз используй таг [code=java][/code]. А то текста и так не мало, да еще читать это в таком виде - сложно найти ответ на вопрос.

Вроде не помогло. Может не так обновлял. Как его мне обновить?
PM MAIL   Вверх
ShkVal
Дата 11.11.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Я разобрался. Извиняюсь за беспокойство smile
PM MAIL   Вверх
AntonSaburov
Дата 11.11.2004, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 118



Цитата(ShkVal @ 11.11.2004, 13:03)
Я разобрался. Извиняюсь за беспокойство

Дык чего извиняться-то smile
Зашел - спасибо. Сам решил - просто молодец. Если решение интересно - то делись. Всем может быть интересно smile
PM MAIL WWW ICQ   Вверх
ShkVal
Дата 11.11.2004, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Цитата(AntonSaburov @ 11.11.2004, 16:49)
Цитата(ShkVal @ 11.11.2004, 13:03)
Я разобрался. Извиняюсь за беспокойство

Дык чего извиняться-то smile
Зашел - спасибо. Сам решил - просто молодец. Если решение интересно - то делись. Всем может быть интересно smile

Да в принципе то и нечем делиться в классе JSplitPane есть методы setLeftComponent и setRightComponent когда надо сменить Component вызываешь
PM MAIL   Вверх
ShkVal
Дата 19.4.2005, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Подскажите пожалуйста решение проблеммы!
Когда я в JSplitPane вызываю метод setLeftComponent или setRightComponent компоненты востанавливаются в размерах. Т. е. когда я настроил сплитер как мне надо, а потом вызываю setLeftComponent или setRightComponent всё что было раньше установлено (соотношения между сторонами сплитера) всё сбивается. Мне кажется компоненты при этом востанавливают свое первоначальные размеры. Может кто знает как решить эту проблемму?
PM MAIL   Вверх
batigoal
Дата 19.4.2005, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Может, setLastDividerLocation() ?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShkVal
Дата 20.4.2005, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 10.11.2004

Репутация: 1
Всего: 1



Lamer George, спасибо. НО то что ты посоветовал не помогло smile Помогло перед установкой компанента вызов getDividerLocation, а после установка полученного значения из метода getDividerLocation, методом setDividerLocation.
Спасибо за то что натолкнул на мысль!
PM MAIL   Вверх
batigoal
Дата 20.4.2005, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Пажалуста smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.