2013-04-02 21 views
0

我有一個名爲MainPanel的空佈局JPanel。點擊一個按鈕,我在mainPanel上添加了JTextpane。首先點擊我創建一個背景顏色白色的文本窗格。第二次點擊時,我正在創建另一個藍色的文本窗格。我想要的是將藍色文本窗格放在白色文本窗格上,但藍色文本窗格放在白色文本窗格後面。我怎樣才能把它放在白色窗格上?如何決定添加到JPanel的組件的順序

這裏的代碼很簡單。 Onclick我正在創建一個新的JTextpane,爲它設置尺寸並將其放置在mainPanel上。

放置更好地描述問題的示例屏幕截圖。這裏的藍色文本面板已經落後於白色文本面板。我想要它在白色texpane之上。我怎麼做? enter image description here

+1

如果您顯示代碼,幫助會更容易。 –

+1

14個問題。沒有一個答案接受,所以我不會浪費我的時間回答,當不努力的努力。只有評論是不要使用空版面! – camickr

回答

1

您必須將JPanel "MainPanel"替換爲LayeredPanel

然後你就可以說:

JLayeredPane mainPanel = new JLayeredPane(); 

JTextPane whitePane = new JTextPane("White text pane on top"); 
JTextPane bluePane = new JTextPane("Blue text pane behind"); 

mainPanel.add(whitePane, 2, 0); 
mainPanel.add(bluePane, 1, 0); 

編輯: 你可以閱讀更多有關的layeredPane這裏:LayeredPane

+0

謝謝kellax。我會試試這個。這應該解決我的問題 – user001

+0

我糾正了我的代碼有點我聲明'JLayeredPane'爲'mainPanel',但後來叫'pane.add'現在應該是正確的。 –

+0

這很好。我用代碼中的Layered窗格替換了JPanel,現在它完美工作。非常感謝 :) – user001

2

如果你想堅持的電流分量,(我想你應該使用kellax的解決方案,但我不知道是否有一個額外的要求迫使你使用你當前的方法),你可以看看Container.setComponentZOrder(Component comp,int index)來直接確定組件的顯示順序。