# JTabbedPane, Focus, ChangeListener



## Guest (30. Jan 2006)

Hallo,
ich habe folgendes Problem: Ich habe ein JTabbedPane("tabbedPane") mit 2 JPanels("panel1", "panel2"), im ersten Tab befindet sich ein JPanel mit mehreren JTextPanes("textPane1", "textPane2", "textPane3", "textPane4"). Nun möchte ich, dass wenn man zum ersten Tab wechselt automatisch ein das "textPane4" den InputFocus bekommt.

Ich habe versucht das ganze folgendermassen zu realisieren: Über einen ChangeListener beim "tabbedPane" werden  ChangeEvents abgefangen und sobald vom zweiten zum ersten Tab gewechselt wird, wird über "textPane4" die  Methode "requestFocusInWindow()" aufgerufen. Jedoch bekommt das "textPane4" den focus nicht.

Ich bin mir nicht ganz sicher was das Problem sein könnte, meine Vermutung ist aber: Der ChangeEvent wird vor dem Anzeigen des Tabs aufgerufen, dann wird der focus gesetzt. Sobald das Tab dann aber angezeigt wird, wird automatisch ein focus gesetzt. Bei dem ganzen handelt es sich aber nur um eine Vermutung, da ich mich mit dem Anzeigen der Tabs und dem FocusManagement nicht auskenne.

Ich habe dann einiges ausprobiert und bin durch Hilfe dann auf das gestossen:


```
SwingUtilities.invokeLater(new Runnable() {
	public void run() {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				m_rightInputField.requestFocusInWindow();   // bei mir in der Erklärung textPane4
			}
		});
	}
});
```

So würde es funktionieren, jedoch verstehe ich nicht warum. Würde mich über Hilfe für mein Problem freuen.

Gruss Lukas


----------



## Floriel (31. Jan 2006)

Hmm, ich hab grad ein ähnliches Problem: ein Textfeld in einem panel, in einer box, in einem tabbedpane in einem frame. Und das Textfeld soll den Fokus bekommen. Das das irgendwie mit requestFocusInWindow() funktionieren muss ist mir klar, blos wie genau, da hab ich nicht den blassesten Schimmer. :?: 
Kann mir einer helfen?


----------

