Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > схлопывающиеся панельки


Автор: нуп 1.7.2011, 14:25
Пытаюсь сделать панель для настроек, аналог панели в netbeans.
user posted image
Панель состоит их хидера, в нем находится JLabel и из таблицы. По нажатию на хидер, таблица прячется/показывается.  Поставил Box Layer для панели.
Код

public class Test extends javax.swing.JPanel {

     public JLabel label;
     public JPanel headerPanel;
     /** Creates new form Test */
     public Test() {
          initComponents();
          
          label = new JLabel("Header text");
          label.setHorizontalTextPosition(JLabel.LEFT);
          label.setBorder(LineBorder.createGrayLineBorder());
          
          headerPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
          headerPanel.setBackground(Color.lightGray);
          headerPanel.add(label);

          add(headerPanel, 0);
          
         label.addMouseListener(new MouseAdapter() {
               
               @Override
               public void mouseReleased(MouseEvent e) {
                    
                    jScrollPane1.setVisible(!jScrollPane1.isVisible());
                    revalidate();
               }
          });
     }


Второй класс просто добавляет эти панели. Layer пробовал ставить Grid, Box. Вот тут и проблема. Когда происходит hide таблицы, то хидер растягивается на всю высоту, хотя я ожидал, того что нижняя панель подымется выше.
user posted image
Как сделать так, чтобы heder не растягивался и нижняя панель подымалась под верхний хидер?

Автор: нуп 2.7.2011, 16:54
Получилось с boxLayout. Все запихнул в панель и сделал setVisible.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)