Loss of keyboard focus in Java appl running under linux
I have a small sample program that replicates my problem. When this program is run a window is created. If you select File->New another instance of the program window is created. Now if you try to go back and bring to front the first window, keyboard focus is not
transferred when run under linux. You can only type in the second window. The expected behavior does happen in Windows.
> uname -a
Linux watson 2.6.20-1.2933.fc6 #1 SMP Mon Mar 19 11:38:26 EDT 2007 i686 i686 i386 GNU/Linux
> java -version
java version"1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)
> javac -version
javac 1.5.0_11
import java.awt.event.*;
import javax.swing.*;
class SwingWindowextends JFrame{
SwingWindow(){
super("SwingWindow");
JMenuBar menuBar =new JMenuBar();
JMenu fileMenu =new JMenu("File");
JMenuItem newItem =new JMenuItem("New");
newItem.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent event){
SwingWindow.createAndShowGUI();
}
});
fileMenu.add(newItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JTextField text =new JTextField(200);
getContentPane().add(text);
pack();
setSize(700, 275);
}
publicstaticvoid createAndShowGUI(){
JFrame frame =new SwingWindow();
frame.setVisible(true);
}
publicstaticvoid main(String[] args){
javax.swing.SwingUtilities.invokeLater(new Runnable(){
publicvoid run(){
createAndShowGUI();
}
});
}
}

