2010-11-21 15 views
5

başlığında bir simge görüntülemek için sekmenin başlığında sekmeyi kapatmak için kullanılan bir simge "X" göstermek mümkündür? TeşekkürJava Sekmeli Bölme:

cevap

6
Ben How to Use Tabbed Panes, öğretici üzerinde seyir önermek ve Özel Bileşenlerinin ile Sekmeler başlıklı bölümüne kaydırın ediyorum

.

Ayrıca, bu bölümün içindeki example index bağlantısına bakarsanız, örnek kod verilir.

3

Aslında bunu kendim gerçekleştirdim. :)

Böyle bir şey:

/* These need to be final so you can reference them in the MouseAdapter subclass 
* later. I personally just passed them to a method to add the tab, with the 
* parameters marked as final. 
* i.e., public void addCloseableTab(final JTabbedPane tabbedPane, ...) 
*/ 
final Component someComponent = ...; //Whatever component is being added 
final JTabbedPane tabbedPane = new JTabbedPane(); 
//I had my own subclass of AbstractButton, but that's irrelevant in this case 
JButton closeButton = new JButton("x"); 

/* 
* titlePanel is initialized containing a JLabel with the tab title, 
* and closeButton. (I don't recall the tabbed pane showing a title itself after 
* setTabComponentAt() is called) 
*/ 
JPanel titlePanel = ...; 
tabbedPane.add(someComponent); 
tabbedPane.setTabComponentAt(tabbedPane.indexOfComponent(someComponent), titlePanel); 

closeButton.addMouseListener(new MouseAdapter() { 
    @Override 
    public void mouseClicked(MouseEvent e) { 
     tabbedPane.remove(someComponent); 
    } 
}); 
+0

Oh ve olası bir olumsuz, setTabComponentAt() yani bu önceki sürümlerinde çalışmaz ... Java 6 tarihinden itibaren kullanılabilir. – swilliams