2011-10-17 46 views
0

我遇到一件有趣的事......一切順利的罰款對象當我在構造函數中添加標籤爲JTabbedPane中 - 動態標籤控制

public class TPane extends JTabbedPane 
{ 

public TPane(ImageIcon iconA,ImageIcon iconB) 
{ 
    this.addTab("A",iconA,null); 
    this.addTab("B",iconB,null); 

} 

} 

但是當我嘗試到另一個對象中添加標籤像

public class AClass 
{ 

public void addNewTab(TPane tp, ImageIcon icon) 
{ 

    tp.addTab("C",icon,null);//<-- contains null 
} 

} 

...它不添加標籤,因爲。 OK,如果我改變至可以說,一個新的的JLabel()代碼工作正常:S

這裏既是一個對象使用...

public class BClass extends JPanel 
{ 


    private AClass a=new AClass(); 
    private TPane tp=new TPane(); 
    JButton addTabButton=new JButton("add tab"); 
    ImageIcon icon; 

    public BClass(Image image) 
{ 

icon=new ImageIcon(image); 
... 
this.add(tp); 
... 
addTabButton.addMouseListener(new MouseAdapter() 
{ 

    public void mousePressed(MouseEvent e) 
{ 

    a.addNewTab(tp,icon); 

} 

}); 

} 
} 

所以我的問題是如何添加空對象動態JTabbedPane?

任何有用的評論贊賞

+1

你爲什麼要空添加到JTabbedPane的擺在首位?如果您不想在選項卡中顯示任何內容,只需添加一個空的JPanel。 –

+3

爲什麼要擴展它?請提供一個[sscce](http://sscce.org/),其中顯示您描述的問題。 – trashgod

+0

僅僅因爲我想僅使用JTabbedPane的選項卡。作爲選項卡調色板 – user592704

回答

3

我不知道這是問題。我已經成功地試了一下,見下面的例子,它的代碼(雖然這是一種病態的例子):

enter image description here

package so; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JTabbedPane; 
import javax.swing.SwingUtilities; 

public class JTabbedEx extends JTabbedPane { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       ImageIcon icon = new ImageIcon(); 
       JTabbedPane tabs = new JTabbedPane(); 
       tabs.addTab("Tab1", icon,null); 
       new AnotherClass().addTab(tabs, icon); 
       JFrame frame = new JFrame(); 
       frame.add(tabs); 
       frame.pack(); 
       frame.setVisible(true); 
      } 
     });   
    } 
} 

class AnotherClass { 
    public void addTab(JTabbedPane tabs, ImageIcon icon) { 
     tabs.addTab("Another tab", icon, null); 
    } 
} 
+0

(可怕的空圖標)屏幕截圖+1 – mKorbel

+0

謝謝:)但是,可能會導致它?我使用JDK 1.6 – user592704

+0

請添加一個[SSCCE](sscce.org)。這將有助於我們發現問題。 – MByD