2013-08-27 41 views
1

我將圖標添加到選項卡,但我希望ImageIcon適合所有tabComponent。是否有任何方法來適應選項卡組件中的圖像

enter image description here

我想這個代碼

ImageIcon icon = new ImageIcon("images/itemtexto-off.png"); 
Image img = icon.getImage() ; 
Image newimg = img.getScaledInstance(50, 25, java.awt.Image.SCALE_DEFAULT) ; 
icon = new ImageIcon(newimg); 
tabbedPaneProductDetail.setIconAt(0, icon); 

而且我想這是一個解決方案,但沒有奏效。

JLabel label = new JLabel(icon); 
label.setBackground(Color.BLUE); 
tabbedPaneProductDetail.setTabComponentAt(1,label); 

回答

1

我找到了一個解決方案,我不知道這是否是正確的一個,這要歸功於@camickr

tabbedPane.setUI(new SynthTabbedPaneUI(){ 

Insets insets =new Insets(0, 0, 0, 0); 

@Override 
protected Insets getTabInsets(int tabPlacement, 
        int tabIndex){ 
        return insets; 
} 

}); 

enter image description here

UPDATE

我找到了另一種解決方案設置該屬性

UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab.contentMargins", new Insets(0, 0, 0, 0)); 
2

您可以嘗試使用UIManager進行遊戲。添加下面在程序的開始,你開始創建組件之前:

UIManager.put("TabbedPane.tabInsets", new Insets(0, 0, 0, 0)); 

當然,並不是所有的LAF的可以支持這個選項。有關更多信息,請參閱UIManager Defaults

+0

謝謝camickr,不工作的原因e nimbus沒有這個屬性,我找到了另一個解決方案,但我不知道它是否是正確的,請檢查我的回答 – nachokk

+0

'UIManager.getLookAndFeelDefaults()。put(「TabbedPane:TabbedPaneTab.contentMargins」,new Insets(0 ,0,0,0));'我在nimbus中發現這個屬性可以幫助 – nachokk

+0

'TabbedPane:TabbedPaneTabArea.contentMargins' – nachokk

相關問題