2012-09-22 102 views
3

你好IM實現我的冷杉拆分窗格視圖,它似乎並沒有爲我工作,我得到下面的輸出...的Java Swing拆分窗格視圖佈局

enter image description here

下面是代碼。

//Create Album Panel 
    albumPanel.setLayout(new FlowLayout()); 

    //Add List view 
    albumList.setMinimumSize (new Dimension(150,150)); 
    albumPanel.add(new JScrollPane(albumList)); 


    //Add Text Area 
    textArea.setLineWrap(true); 
    textArea.setWrapStyleWord(true); 
    textArea.setEditable(false); 
    textArea.setMinimumSize (new Dimension(150,150)); 
    albumPanel.add(textArea); 

    //Split Pane 
    JSplitPane splitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, albumList, textArea); 

    albumPanel.add(splitpane, BorderLayout.CENTER); 

回答

2

你已經設置你的albumPanel佈局FlowLayout但你嘗試使用BorderLayout常量增加了JSplitPane時:

albumPanel.add(splitpane, BorderLayout.CENTER);

你應該通過而設置albumPanel佈局BorderLayoutnew BorderLayout()

另外,對於您設置組件的大小,讓LayoutManager爲您做到這一點並不是一個好主意。

+0

謝謝堆!那很完美 –

2

您需要添加組件,持有你的列表和文本區域,你將JSplitPane的爲JScrollPanes它向他們展示。而且當大衛說(1+對他)時,容納JSplitPane的容器需要能夠擴展它,並且BorderLayout可以爲此工作。

此外,不要將組件多次添加到容器。將組件添加到JScrollPanes,然後將JScrollPanes添加到JSplitPane。不要將組件添加到albumPanel容器。你的代碼在這方面有點精神分裂。

+0

我認爲他在構建splitpane時看到了文檔:http://docs.oracle.com/javase/6/docs/api/javax/swing/JSplitPane.html#JSplitPane%28int,%20boolean,% 20java.awt.Component,%20java.awt.Component%29 –

+1

是的,你是對的。他的代碼有點精神分裂,因爲他將組件添加到JScrollPanes,然後將它們添加到JPanel中,然後將相同的組件添加到拆分窗格中? –