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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выравнивание JCheckBox в JFileChooser 
:(
    Опции темы
mstalker26
Дата 9.12.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



День добрый!

Пытаюсь реализовать JFileChooser с дополнительным элементом, но чтобы он появлялся не справа (как в методе setAccessory(...)), а снизу. На данный момент, получилось следующее
Код

public class JFileChooserExtended {
  public static void main(String[] args) {
    
    JFileChooser fc = new JFileChooser();
    JComboBox cb = new JComboBox();
    JPanel panel = new JPanel();
    BoxLayout box = new BoxLayout(panel,BoxLayout.Y_AXIS);
    BorderLayout layout = (BorderLayout) fc.getLayout();
    panel.setLayout(box);
    Component comp = layout.getLayoutComponent(BorderLayout.SOUTH);
    JPanel panelForCheckBox = new JPanel();
    JCheckBox cbPrivet = new JCheckBox("Privet");
    panelForCheckBox.setLayout(new BoxLayout(panelForCheckBox, BoxLayout.X_AXIS));
    panelForCheckBox.add(cbPrivet);
    panelForCheckBox.add(Box.createHorizontalGlue());
    
    JComponent jcomp = (JComponent) comp;
    JComponent buttonsPanel = null;
    JComponent toAlign = null;
    if (jcomp.getComponentCount() == 4) {
      buttonsPanel = (JComponent) jcomp.getComponent(3);
      
      // 3 fall
      JComponent panelWithFileType = (JComponent) jcomp.getComponent(2);
      for (int i=0; i < panelWithFileType.getComponentCount(); i++) {
        if (panelWithFileType.getComponent(i) instanceof JComboBox) {
          toAlign = (JComponent) panelWithFileType.getComponent(i);
        }
      }
    }

    panel.add(comp);
    panel.add(panelForCheckBox);
    panel.add(buttonsPanel);
    fc.add(panel,BorderLayout.SOUTH);
    
    fc.showOpenDialog(null);
    
  }
}


Проблема в том, что не могу выровнять JCheckBox, на картинке я показал, как хочу smile Может кому идея в голову придет как? Может, конечно, я и решение просмотрел попроще.
user posted image

--------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
PM   Вверх
mstalker26
Дата 9.12.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Может кому интересно, засунул RigidArea перед чекбоксом. Выглядит как надо.

Сижу раздумываю, если вдруг sun'овцы поменяют layout в JFileChooser, моя "ужасно реализованная" конструкция полетит к чертям собачьим smile

Код

Dimension dim = subcomp.getComponent(j).getPreferredSize();

Код

panelForCheckBox.add(Box.createRigidArea(dim));
panelForCheckBox.add(cbPrivet);
panelForCheckBox.add(Box.createHorizontalGlue());


Вот как все выглядит
user posted image
--------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0930 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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