Re: JOptionPane focus




"Ian Wilson" <scobloke2@xxxxxxxxxxxxx> wrote in message news:dvCdnRL0ydAiBM3ZRVnygA@xxxxxxxxx
When I use JOptionPane's static methods to display some JTextFields, initial focus is on one of
the buttons, is it possible to set initial focus to the JTextField?

example code:

import javax.swing.*;
import java.awt.*;

public class MyApp3 {

public static JFrame frame;

private static void createAndShowGUI() {
JFrame frame = new JFrame("A test app");
frame.setBounds(100,100, 300, 200);
frame.setVisible(true);
getPassword();
}

private static void getPassword() {
JPanel panel = new JPanel();
JTextField nameField = new JTextField(10);
JPasswordField passwordField = new JPasswordField(10);
panel.setLayout(new GridLayout(2,2, 5,10)); // rows,cols,vgap,hgap
panel.add (new JLabel("Name", SwingConstants.RIGHT));
panel.add (nameField);
panel.add (new JLabel("Password", SwingConstants.RIGHT));
panel.add (passwordField);
int choice = JOptionPane.showConfirmDialog(
MyApp3.frame, // parent
panel, // "message"
"Database Log-in", // title
JOptionPane.OK_CANCEL_OPTION, // optiontype
JOptionPane.PLAIN_MESSAGE // messagetype: no icon
);
// do something with choice and credentials
}

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() { createAndShowGUI(); }
});
}

}


JPanel panel = new JPanel();
final JTextField nameField = new JTextField(10);//<-----final
javax.swing.SwingUtilities.invokeLater(new Runnable() {//<-----add
public void run() { nameField.requestFocusInWindow(); }});//<----add
JPasswordField passwordField = new JPasswordField(10);


.