2013-11-21 43 views
0

我創建一個選項卡窗格如何在運行時更改JTabbedpane組件的屬性?

tabs= new JTabbedPane(); 
tabs.addChangeListener(new ChangeListener() { 
    @Override 
    public void stateChanged(ChangeEvent e) { 
      JTabbedPane sourceTabbedPane = (JTabbedPane) e.getSource(); 
      int index = sourceTabbedPane.getSelectedIndex(); 
      sourceTabbedPane.getTabComponentAt(index).getComponentAt(0).setForeground(Color.RED); 

}); 

tabs.setTabComponentAt(0, new JLabel("tab1")); 
tabs.setTabComponentAt(0, new JLabel("tab2")); 

我得到這個錯誤:

在類型組件的方法的getComponentAt(點)不適用的參數(INT)

怎麼辦我拿到了我放在selectedTab上的標籤?我想在標籤上設置前景。

EDIT 1 

我也在運行時得到空指針錯誤。

回答

0

Component.getComponentAt接受Point對象,或者兩個整數作爲int x, int y,它看起來在該位置的子組件。

http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html

+0

是的。我之前讀過,我試過(0,0)和(1,1) - 都沒有工作 – ManInMoon

+0

你的JLabel在位置(0,0)?這不是索引,像素的物理位置。 – regulus

+0

實際上看到我的編輯 - 我似乎得到一個空指針錯誤。我想這必須在「索引」上 – ManInMoon