2012-04-10 29 views
0

Ich verwende eine JideTabbedPane. welches sich erstreckt JTabbedPane. Nachdem ein Benutzer den Namen einer Registerkarte bearbeitet hat, möchte ich prüfen, ob der Name bestimmte Kriterien erfüllt, z. Der Name darf keine leere Zeichenfolge sein. Wenn es die Kriterien nicht erfüllt, sollte der alte Name der Registerkarte verwendet werden.So überprüfen Sie die Tabnamen in JTabbedPane

Ich habe eine TabEditingListener versucht, um diese Aufgabe zu erfüllen, aber es hat nicht funktioniert. Hier ist, was ich schrieb:

addTabEditingListener(new TabEditingListener() { 
    public void editingStopped(TabEditingEvent event) { 
     if (event.getNewTitle().isEmpty()) { 
     setTitleAt(event.getTabIndex(), event.getOldTitle()); 
     } 
    } 
    } 

Alle Ideen werden sehr geschätzt.

+0

Möglicherweise möchten Sie den Teil "nicht funktioniert" angeben. Wird dein Zuhörer nie angerufen? Ist der Titel im Ereignis nicht festgelegt? Hast du irgendwelche Ausnahmen? ... – Robin

+0

@Robin Der Listener wird aufgerufen, aber der Titel wird nie gesetzt. Keine Ausnahmen. Nichts passiert. –

+0

Habt ihr das gleiche EDT-Problem wie im [JideForum] (http://www.jidesoft.com/forum/viewtopic.php?f=18&t=12472&p=61402&hilit=JideTabbedPane#p61402) – mKorbel

Antwort

0

Ich bin nicht vertraut mit der JideTabbedPane so könnte es bessere Lösungen und Mechanismen geben. Aber die JTabbedPane#setTitleAt Methode, die ich nach dem Bearbeiten des Titels aufgerufen wird, feuert eine PropertyChangeEvent für die indexForTitle Eigenschaft nach dem Quellcode. Sie können auf dieses Ereignis warten und die Validierung durchführen.

0

Sie sollten eine else-Anweisung haben, die ziemlich sagt, dass, wenn es nicht ungültig ist, der Text als das, was sie eingegeben haben.

Verwandte Themen