Вложенный JSplitPane в JInternal Frame

Нажав кнопку «Добавить Int Frame», я нарисую JInternalFrame на tabbedPane, в правой части этого HORIZONTAL разделенного JSplitPane.

введите здесь описание изображения

В этот InternalFrame я могу добавить вложенную JSplitPane, нажав кнопку «Добавить разделенную панель».

Вложенные JSplitPanes появляются, только если я перемещаю InternalFrame: как показать JSplitPanes сразу видимыми при нажатии кнопки?

Вот мой код

public class MultiSplit extends javax.swing.JFrame {

JInternalFrame jif;
JSplitPane jsp1,jsp2,jsp3,jsp4,jsp5, jsp6;
JTextArea textArea1, textArea2, textArea3, textArea4, textArea5, textArea6;
int click = 0;

public MultiSplit() {
    initComponents();
    setLocationRelativeTo(null);
}

private void AddIntFramesMousePressed(java.awt.event.MouseEvent evt) {                                      
    click = 0;        
    jif = new JInternalFrame();
    jPanel1.add(jif);
    jif.setSize(750, 600);
    jif.setResizable(true);
    jif.setClosable(true);
    jif.setMaximizable(true);
    jif.setIconifiable(true);
    jif.setVisible(true);
}                   

private void AddPanesButtonMousePressed(java.awt.event.MouseEvent evt) {                                            
    click++;      
    if(click ==1){
    textArea1 = new JTextArea();
    textArea2 = new JTextArea();

    jsp1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, textArea1, textArea2);
    jsp1.setVisible(true);       
    jsp1.setResizeWeight(0.75);
    jsp1.setDividerSize(2);
    jif.add(jsp1);
    }        
    else if(click==2){
      textArea3 = new JTextArea();  
      jsp2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jsp1, textArea3);
      jsp2.setVisible(true);
      jsp2.setResizeWeight(0.80);
      jsp2.setDividerSize(2);
      jif.add(jsp2);
    }        
    else if(click==3){
      textArea4 = new JTextArea();  
      jsp3 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jsp2, textArea4);
      jsp3.setVisible(true);
      jsp3.setResizeWeight(0.85);
      jsp3.setDividerSize(2);
      jif.add(jsp3);
    }
   }
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            new MultiSplit().setVisible(true);
        }
    });
  }
}

JSplitPanes построен


person Alberto acepsut    schedule 10.05.2012    source источник
comment
Измените свой вопрос, включив в него sscce, который указывает на описанную вами проблему.   -  person trashgod    schedule 10.05.2012


Ответы (1)


Как использовать внутренние фреймы: «Обычно вы добавляете внутренние рамки на панель рабочего стола». Независимо от того, находится ли ваш JInternalFrame на JDesktopPane или нет, вам все равно нужно pack() внутреннюю рамку, как и закрывающую Window.

person trashgod    schedule 10.05.2012