2013-04-06 81 views
1
public void tabbedPane(){ 
     JPanel tab1 = new JPanel(); 
      JButton btn = new JButton("Buton - 1"); 
      btn.setPreferredSize(new Dimension(50, 20)); 
      btn.setLocation(0, 10); 
     tab1.add(btn); 
     JTabbedPane tabPanel = new JTabbedPane(); 
     tabPanel.addTab("tab1", null, tab1); 
     tabPanel.addTab("tab2", tab1); 
     tabPanel.addTab("tab3", btn); 
     tabPanel.setPreferredSize(new Dimension(450, 150)); 
     tabPanel.setLocation(50, 0); 
     mainPanel.add(tabPanel);//Main panel on frame 
    } 

工作,我只看到TAB2 TAB3和窗格和我有很多問題:JTabbedPane的當我運行我的應用程序不能正確

  • tabPanel.setLocation不起作用
  • 的TabPanel。 addTab(「tab1」...)不起作用
  • btn.setPreferredSize(new Dimension(50,20));當我 點擊「tab2」它正常工作,但是當我點擊「tab3」它不會改變按鈕 大小..爲什麼?

,我使用空佈局

回答

1

你的目標是什麼?

A JTabbedPane用於組織視圖,我看到您試圖添加JPanel作爲第一個選項卡,這是JTabbedPanes的「主要目標」。

tabPanel.addTab("Tab 1", tab1); 

嘗試添加這樣的標籤,你傳遞一個「空」的值作爲圖標,它不能影響所有,但如果你不使用的圖標,然後只需添加面板作爲預定名稱的標籤。

第二次添加時,再次添加相同的組件(tab1)。

第三次添加時,您嘗試添加一個已經在容器(tab1)上的組件。這將使該組件僅出現在您添加到的最後一個容器中。此外,組件是JButton。我看不到JButton作爲選項卡的目標。

對於setLocation(x, y)問題,請檢查您在容器上使用的佈局。

同樣,我認爲這裏的主要問題是您沒有正確接近您的問題,或者您沒有使用所需的工具。

2

tabPanel.setLocation不起作用

不要使用setLocation(...)而是使用嵌套組件和佈局管理器,實現了令人愉悅和輕鬆維護GUI佈局。

tabPanel.addTab( 「TAB1」 ......)不工作

鞦韆,你只能添加一個組件到一個容器,僅此而已。組件只會顯示在最後添加的容器中。

btn.setPreferredSize(new Dimension(50, 20));當我點擊「tab2」它工作正常,但是當我點擊「tab3」它不會改變按鈕大小。爲什麼?

同樣,你將要學習的佈局管理器

,我使用空佈局

你幾乎從未要做到這一點,因爲這將使您的應用程序不看在任何平臺上都是正確的,但只能是自己的,並且會使維護和升級非常困難。使用佈局管理器並讓他們完成爲您佈置和調整組件的繁重工作要好得多。

相關問題