2013-12-08 55 views
0

我正在嘗試在其中一個選項卡內爲我的JTabbedPane創建一個JScrollPane。我想我雖然會工作,這是這樣的:如何在JTabbedPane中創建JScrollPane?

pane.add("Main", mainGame);// These are my other tabs 
    pane.add("Upgrades", upgradeScreen); //the JTabbedPane 
    pane.add("Credits", creditsTab); 
    upgradeScreen.setLayout(null); //The null layout 
    lblMoney2.setBounds(10, 11, 277, 22); 
    upgradeScreen.add(lblMoney2); // A simple JLabel 
    scrollPane.add(upgradeScreen); //my JScrollPane 

哪裏窗格是我的JTabbedPane中和滾動面板是我的JScrollPane中。這只是擺脫我的升級屏幕選項卡。我有點期待這一點,但我不知道還有什麼要做。如果需要更多的代碼讓你知道,告訴我,我會把它,否則,感謝您的幫助!

回答

2

不要我們JScrollPane#add,而不是要使用JScrollPane#setViewportView

退房How to use ScrollPane更多細節。

建議 - 請勿使用null佈局,它們會限制應用程序在多個平臺上運行的能力。相反,花時間學習佈局經理如何工作

+0

+1爲什麼總是我是誰將不得不錯過的東西。 foooo ... – Sage

+0

@sage是的,但你首先得到雙親問題,所以+1給你;) – MadProgrammer

+0

從你的答案中的'JTextArea'的另一天,我挖掘了它的源,發現文本區域視圖從不使用'\ r \ n'換行,所以實際上你的體驗是正確的:)。事實上,我認爲我缺乏經驗。這就是爲什麼有時我的答案變得完全錯誤。昨天在回答一個問題時,我試着回到了最後的順序,但我知道正確的返回順序,但是我仍然通過寫入相反的順序來完成錯誤。 :( – Sage

2

這只是擺脫了我的升級屏幕選項卡。

是的,因爲沒有組件可以一次有兩個父母。您首先將upgradeScreen添加到JTabbedPane,然後再將它添加到JScrollPane。組件的add(component)函數最終將調用addImpl(component)函數:它將從其舊父項中移除該組件,並將其添加到新父項。

但是:

  1. 您需要的JScrollPane添加到JTabbedPane實例。
  2. 要使用setViewportView(component)函數將要滾動的組件設置爲JScrollPane爲您的情況下,它是upgradeScreen
相關問題