jTextField in Dialog den Focus geben.

holtiwilan

Mitglied
Hi!
Ich suche eine möglichkeit einem jTextfield in einem Dialog den Focus zu geben, so das der Cursor beim starten des Dialogs in diesem Feld ist.

Ich habe schon jTextFiels.requestFocus probiert.
Auch habe ich im Internet folgenden vorschlag gefunden:
Code:
//: LoginDialog3.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LoginDialog3 extends JDialog {
  private final JTextField userName = new JTextField(8);
  private final JPasswordField password = new JPasswordField(8);
  public LoginDialog3(Frame owner) {
    super(owner, "Login Dialog", true);
    getContentPane().setLayout(new GridLayout(0,2,5,5));
    getContentPane().add(new JLabel("Username:"));
    getContentPane().add(userName);
    getContentPane().add(new JLabel("Password:"));
    getContentPane().add(password);
    pack();
    Windows.centerOnScreen(this);
    changeFocus(userName, password);
    show();
  }
  private void changeFocus(final Component source,
      final Component target) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        target.dispatchEvent(
          new FocusEvent(source, FocusEvent.FOCUS_GAINED));
      }
    });
  }
  public String getUserName() { return userName.getText(); }
  public String getPassword() { return password.getText(); }
  public static void main(String[] args) {
    JFrame owner = new JFrame("Login Dialog");
    owner.setLocation(-1000, -1000);
    owner.show();
    owner.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    new LoginDialog3(owner);
  }
}

Aber das funktioniert auch nicht.

Kann mir jemand helfen?

Viele Grüße

Tim
 
Hallo Tim,

wenn du eine Swing-GUI öffnest ist der Fokus automatisch auf der ersten Textkomponente falls vorhanden. Habe dein Beispiel ausprobiert - ebenso ist es auch hier.

Du brauchst also den Fokus nicht selber setzen!


Vg Erdal
 
Zurück