62 lines
1.9 KiB
Java
62 lines
1.9 KiB
Java
|
Set focus on second JTextField in a JDialog
|
||
|
|
||
|
import java.awt.*;
|
||
|
import java.awt.event.*;
|
||
|
import javax.swing.*;
|
||
|
|
||
|
public class TestFocus extends JFrame
|
||
|
{
|
||
|
JButton button; public TestFocus()
|
||
|
{
|
||
|
JPanel panel = new JPanel();
|
||
|
setContentPane( panel );
|
||
|
panel.add( new JTextField( "Focus is on Click Me button", 20 ) );
|
||
|
button = new JButton( "Click Me" );
|
||
|
button.addActionListener( new ActionListener()
|
||
|
{
|
||
|
public void actionPerformed(ActionEvent e)
|
||
|
{
|
||
|
JDialog dialog = new JDialog1();
|
||
|
}
|
||
|
});
|
||
|
panel.add( button );
|
||
|
// Listen for windowOpened event to set focus
|
||
|
addWindowListener( new WindowAdapter()
|
||
|
{
|
||
|
public void windowOpened( WindowEvent e )
|
||
|
{
|
||
|
button.requestFocus();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
public static void main(String[] args)
|
||
|
{
|
||
|
TestFocus frame = new TestFocus();
|
||
|
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
|
||
|
frame.pack();
|
||
|
frame.setVisible(true);
|
||
|
// frame.button.requestFocus();
|
||
|
}
|
||
|
class JDialog1 extends JDialog
|
||
|
{
|
||
|
public JDialog1()
|
||
|
{
|
||
|
JPanel panel = new JPanel();
|
||
|
setContentPane( panel);
|
||
|
panel.add( new JTextField( "Focus is on next Text Field", 20) );
|
||
|
final JTextField tf1 = new JTextField(9);
|
||
|
panel.add( tf1 );
|
||
|
pack();
|
||
|
// Use invokeLater AFTER the dialog is shown
|
||
|
setVisible( true );
|
||
|
SwingUtilities.invokeLater( new Runnable()
|
||
|
{
|
||
|
public void run()
|
||
|
{
|
||
|
tf1.requestFocus();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|