【发布时间】:2011-09-09 05:58:19
【问题描述】:
为了在输入对话框中有自定义按钮标题,我创建了以下代码:
String key = null;
JTextField txtKey = new JTextField();
int answerKey = JOptionPane.showOptionDialog(this, new Object[] {pleaseEnterTheKey, txtKey}, decryptionKey, JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[] {okCaption, cancelCaption}, okCaption);
if (answerKey == JOptionPane.OK_OPTION && txtKey.getText() != null) {
key = txtKey.getText();
}
如何在显示对话框时将焦点(光标)移动到文本字段?
更新
这对我不起作用,我的意思是文本字段没有焦点: 操作系统:Fedora - Gnome
public class Test {
public static void main(String[] args) {
String key = null;
JTextField txtKey = new JTextField();
txtKey.addAncestorListener(new RequestFocusListener());
int answerKey = JOptionPane.showOptionDialog(null, new Object[]{"Please enter the key:", txtKey}, "Title", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, new Object[]{"OKKK", "CANCELLLL"}, "OKKK");
if (answerKey == JOptionPane.OK_OPTION && txtKey.getText() != null) {
key = txtKey.getText();
}
}
}
【问题讨论】:
-
@ehsun7b,请问有什么问题?
-
@mre,如何将光标移动到文本字段?
-
@ehsun7b,试试
txtKey.requestFocusInWindow();- download.oracle.com/javase/6/docs/api/java/awt/… -
@mre:这在我的简单测试中似乎不起作用。我确定我已经看到了对此的“单行”答案,但我这辈子都不记得了。
-
请将您的建议发布为我可以接受的答案。 :)
标签: java swing focus joptionpane