Text component not focusa
To: comp.lang.java.gui
Hello,
I have a simply JFrame with a subclassed JTabbedPane as main
container. Each tab contains a non editable JTextPane which display
some text. Under each text pane there is a one lined JTextField. This
text field acts as input for the JTextPane. It is basically a simple
*chat* GUI...
On pressing a button or some other key combo the text in the text
field is copied to the text pane...
The problem now is:
When having 2 or more chats/tabs, the user can switch chats by
clicking on the tabs. This focuses the tabs however. What I want here
is to focus the *input text field* when the tab selection changes. As
Karsten Lentzsch pointed out, the ChangeListener was basically the way
to go:
public synchronized void stateChanged(ChangeEvent ce)
{
System.out.println("stateChanged");
final SingleSelectionModel ssm = getModel();
int tc = getTabCount();
//one tab is displayed when chat list empty, so there's always a
selected index
if ( tc > 0 )
{
int index = ssm.getSelectedIndex();
if ( index == -1 )
{
return;
}
if ( lsChatPanels.size() <= index )
{
return;
}
//valid index...
JChatPanel cp = lsChatPanels.get(index);
System.out.println("Requesting focus on " + cp.getName());
JTextComponent tcUserMessage = cp.getUserMessageTextComponent();
//request focus on user message text component
tcUserMessage.requestFocus();
}
}
Well the code basically works, but it simply DOESN'T receive keyboard
focus. It's a very annoying thing in a chat app when you switch a chat
panel and can't just start to type! (usability = zero)...
Whatever the code shows above, the point is, how do I achieve
focussing that text component? I suspect it's not easy in conjunction
with a JTabbedPane because of the explicit mouse click tab selection
which focusses the tabs...
How do I achieve automatic text field focussing when switching tabs? I
fiddled for some hours now, but the results are very depressing...
Karsten
---
* Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24