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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прижать компонент в Box-е к верхней грани 
:(
    Опции темы
kaa
Дата 2.6.2008, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Народ, пользую в качестве менеджера компоновки BoxLayout. 

Так вот возникла ситуация: запихиваю в verticalBox компонент, но как его прижать к верхней границе этого бокса ума не приложу.
Компонент - JScrollPane(JTree);

Код

public EditFrame(){
       this.setTitle("Editor window");
       this.setSize(600, 400);
       this.setDefaultCloseOperation(EXIT_ON_CLOSE);
              
       this.mainPanel = new MainPanel(this);
       this.st = new SystemTree(this.mainPanel);
       this.CreateOfficialMenu();
       this.mainPanel.setVisible(false);
              
       this.setJMenuBar(this.officialMenu);
       
       this.CreateToolbar();
       
       Box mainBox = Box.createHorizontalBox();
       Box treeBox = Box.createVerticalBox();
       Box editorBox = Box.createVerticalBox();
       
       
       treeBox.add(new JScrollPane(this.st));//Вот это надо прижать к верху
       treeBox.add(Box.createVerticalGlue());//Это до конца не помогает
       editorBox.add(this.mainPanel);
       
              
       Dimension size = new Dimension(200,300);
       treeBox.setPreferredSize(size);
       size = new Dimension(400,800);
       treeBox.setMaximumSize(size);
       size = new Dimension(100,300);
       treeBox.setMinimumSize(size);
       
       mainBox.add(treeBox);
       mainBox.add(Box.createHorizontalGlue());
       mainBox.add(editorBox);
             
       this.add(new JScrollPane(mainBox), BorderLayout.CENTER);
       
       
       //Запрещаем все кнопки редактирования
        this.add.setEnabled(false);
        this.delete.setEnabled(false);
        this.save.setEnabled(false);
            
        this.addToolBar.setEnabled(false);
        this.deleteToolBar.setEnabled(false);
        this.saveToolBar.setEnabled(false);
              
        this.st.add.setEnabled(false);
        this.st.delete.setEnabled(false);
       
        //ставим обработчик на изменение структуры дерева и выделения узла
        //Ставим здесь, ибо до создания mainPanel ставить нельзя - зависит от неё
        this.st.addTreeExpansionListener(new SynchronizeAllowButton(this.st));
        this.st.addTreeSelectionListener(new SynchronizeAllowButton(this.st));
        
        this.setVisible(true);
        
        //Устанавливаем фокус на корень дерева
        DefaultTreeModel tm = (DefaultTreeModel)this.st.getModel();
        TreePath pathToRoot = new TreePath(tm.getPathToRoot((TreeNode)tm.getRoot()));
        this.st.setSelectionPath(pathToRoot);
       
   }


В прикрепленном файле скрин ка это дело выглядит.
Если кто сталкивался с данной траблой - откликнитесь пожалуйста.

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  Untitled_3.png 7,19 Kb
PM MAIL   Вверх
Старовъръ
Дата 2.6.2008, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что на Box-ах мир заканчивается? Комбинируй несколько менеджеров. Для того, чтоб что-то растянуть на всю, например, можно использовать GridLayout.

Это сообщение отредактировал(а) Старовъръ - 2.6.2008, 06:59
PM MAIL WWW   Вверх
kaa
Дата 2.6.2008, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Старовъръ
Да не заканчивается в общем-то smile
Просто меня как бы устраивает уже существующий дизайн, за исключением этой маленькой фишечки. 
Конечно если прижать нельзя -> GridLayout рулит smile

Но так как я чел от природы ленивый, хочется всё же удостоверится, преждечем переделывать код smile
PM MAIL   Вверх
dorogoyIV
Дата 2.6.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



ну можно под твою treeBox положить еще один Box
Код

  Box lowerTreeBox = Box.createVerticalBox();

  Box treeBox = Box.createVerticalBox();
  treeBox.add(new JScrollPane(new JTree()));

  treeBox.setPreferredSize(new Dimension(200, 300));
  treeBox.setMinimumSize(new Dimension(100, 300));
  treeBox.setMaximumSize(new Dimension(200, 300));

  lowerTreeBox.add(treeBox);
  lowerTreeBox.add(Box.createVerticalGlue());

  mainBox.add(lowerTreeBox);

PM MAIL   Вверх
kaa
Дата 2.6.2008, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



dorogoyIV,

Сделал так:

Код

treeBox.add(new JScrollPane(this.st));
treeBox.add(Box.createVerticalGlue());
treeBox.add(Box.createVerticalBox()); 


Не помогло... 
Буду значит с GridBagLayout химичить...


Это сообщение отредактировал(а) kaa - 2.6.2008, 23:50
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1114 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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