1
我有一個Swing應用程序,它彈出一個JDialog
並要求輸入用戶名和密碼。我認爲將鍵盤焦點放在用戶名字段中會很好,但是迄今爲止我嘗試過的一切都不起作用(即使我嘗試過的一種解決方案適用於程序中的不同文本字段),所以。 ...我需要一些幫助。這裏是我的代碼:無法將鍵盤焦點放在JDialog中的JTextField上
//JTextField usernameField = ...
JDialog dialog = pane.createDialog("Password:");
dialog.setVisible(true);
//Take 1
usernameField.requestFocusInWindow();
//Take 2
dialog.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
usernameField.requestFocusInWindow();
}
});
//Take 3 - This is what I used elsewhere quite successfully
dialog.addComponentListener(new ComponentAdapter() {
public void componentShown(ComponentEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
usernameField.requestFocusInWindow();
}
});
}
});
爲什麼它的價值,這是與Linux/X11/Openbox。而當我使用GTK時,我必須按Tab
一次來選擇適當的字段,但是當我使用Metal時,我必須按兩次。
在此先感謝。
這正是我需要的鏈接,非常感謝! – tsm