Salve ragazzi ho un piccolo rompicapo da sottoporvi.
Ho una applicazione java swing. Ho un frame che contiente un JTabbedPane, ne inserisco 2 dinamicamente. Per dare la possibile di far apparire il pulsante X accando alla scheda ho esteso la classe JTabbedPane in questo modo
Richiamo l'oggetto inq uesto modocodice:package Componenti_Swing; import java.awt.Component; import javax.swing.Icon; import javax.swing.JTabbedPane; @SuppressWarnings("serial") public class CloseableTabbedPane extends JTabbedPane { public CloseableTabbedPane() { super(); } public CloseableTabbedPane(int tabPlacement) { super(tabPlacement); } public CloseableTabbedPane(int tabPlacement, int tabLayoutPolicy) { super(tabPlacement, tabLayoutPolicy); } public void insertTab(String title, Icon icon, Component component, String tip, int index) { super.insertTab(title, icon, component, tip, index); super.setTabComponentAt(index, new TabPanel(this, title, icon)); //jtbExample.setTitleAt(jtbExample.getSelectedIndex(), "my full new title"); } public void setTitleAt(String text){ System.out.println("pippo"); super.setTitleAt(0, "pippo"); } }
voglio a questo punto al verificarsi di un evento, modificare il titolo del Tab e girando in rete ho trovato il segunete codice:codice:jtbExample = new CloseableTabbedPane(); jtbExample.addTab("Ricetta ", null, panelContenitore, "Ricetta "); getContentPane().add(jtbExample,BorderLayout.CENTER); getContentPane().validate();
Ora questo codice funziona se l'oggetto jtbExample lo definisco in questo modocodice:jtbExample.setTitleAt(jtbExample.getSelectedIndex(), "my full new title");
se invece lo definisco come la classe che ho creato io non funziona, il testo non viene cambiato. Come posso risolvere???codice:jtbExample = new JTabbedPane();



Rispondi quotando