Ich habe eine TabFolder
mit ein paar TabItems
erstellt.TabFolder ändert die Auswahl selbst nach dem ersten Klick
Standardmäßig ist das erste Element ausgewählt. Aber wenn ich den ersten Mausklick auf die entsprechende Composite
die TabFolder
ist auf, um einen anderen Artikel als die, die bereits ausgewählt ist, wird es nur diesen Artikel kurz auswählen, bevor es die Auswahl des ersten Artikels wieder herstellt.
Aber nachdem Sie einmal auf TabFolder
geklickt haben und damit den Fokus gewinnen, funktioniert alles wie erwartet.
Ich habe mit SelectionListeners
überprüft, dass die Neuauswahl keine SelectionEvent
auslöst und daher nehme ich an, dass dies eine Art internes Verhalten ist.
Hat jemand dieses Problem schon einmal gehabt oder weiß, wie man das TabFolder
davon abhält, das erste Element erneut auszuwählen?
Hier ist, wie ich schaffe das TabFolder
:
protected void createContent(Composite parent) {
InfoComposite comp = new InfoComposite(parent, SWT.NONE);
comp.setBackground(parent.getBackground());
comp.setForeground(parent.getForeground());
parent.setLayout(new FillLayout());
comp.setLayout(new FillLayout());
folder = new TabFolder(comp, SWT.TOP);
// inherit color scheme
folder.setForeground(comp.getForeground());
folder.setBackground(comp.getBackground());
}
EDIT:
Ich sollte erwähnen, dass dieses TabFolder
Teil einer AbstractInformationControl
in Eclipse ist. Ich weiß nicht, ob das etwas mit meinem Problem zu tun hat.
EDIT2:
Ich vermute jetzt stark, dass dies ein Fokusproblem ist. Ich behielt den Fokus und es stellte sich heraus, dass sich die TabItem
nicht wirklich auf den ersten Klick konzentriert. Es ist immer die StyledText
, die von der ersten enthalten ist TabItem
... Nur mit dem zweiten Klick bekommt die TabFolder
tatsächlich den Fokus.
Ist es möglich, dass die TabFolder
nicht fokussiert wird, wenn Sie auf eine der Registerkarten klicken?
Kannst du ein [MCVE] erstellen (http://StackOverflow.com/Help/Mcve)? – Baz
ich werd was ich sehen kann tun ... – Raven
So stellte sich heraus, dass ich das Problem nicht reproduzieren kann, da es nicht durch den '' TabFolder'' verursacht zu sein scheint, sondern durch Fokusprobleme stattdessen ... Siehe meine zweite Bearbeitung mehr Informationen – Raven