2012-03-20 93 views
2

我想添加一個按鈕到JTabbedPane的標題欄(類似於Firefox中的'打開新選項卡'('+')按鈕) 我試圖添加到玻璃窗格JTabbedPane的容器。但由於我的tabbedpane包含在一個JPanel看起來不適合我。 任何建議對我來說都是很有幫助的。 謝謝。Firefox上的'打開新選項卡'JTabbedPane

+0

重複的https://stackoverflow.com/questions/1971141/java-add-tab-button-for-a-jtabbedpane/ – 2017-10-24 19:54:44

回答

6

而不是添加一個按鈕我嘗試過不同的方式,併爲我工作...我已經添加了一個JLabel(與'+')作爲隱藏標籤,當用戶試圖選擇該標籤時,我會正在添加一個新標籤。

public class AddTabButtonDemo extends JFrame{ 

private JTabbedPane tabbedPane = new JTabbedPane(); 

public AddTabButtonDemo() { 
    JLabel tab1Label = new JLabel("tab1"); 
    JPanel tab1 = new JPanel(); 
    tab1.add(tab1Label); 
    tabbedPane.addTab("tab1", tab1); 
    tabbedPane.addTab("+", new JLabel()); 
    tabbedPane.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent e) { 
      if (tabbedPane.getSelectedComponent() instanceof JLabel) { 
       int count = tabbedPane.getTabCount(); 
       JLabel newTabLabel = new JLabel("tab" + count); 
       JPanel newTab = new JPanel(); 
       newTab.add(newTabLabel); 
       tabbedPane.add(newTab, count - 1); 
       tabbedPane.setTitleAt(count - 1, "tab" + count); 
       tabbedPane.setSelectedComponent(newTab); 
      } 
     } 
    }); 
    this.add(tabbedPane, BorderLayout.CENTER); 

    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    this.pack(); 
    this.setMinimumSize(new Dimension(300, 300)); 
    this.setVisible(true); 

} 

public static void main(String[] args) { 
    new AddTabButtonDemo(); 
} 

}