gpt4 book ai didi

java - 在 JOptionPane JPasswordField 中设置焦点

转载 作者:行者123 更新时间:2023-12-01 13:27:37 24 4
gpt4 key购买 nike

我使用 JOptionPane 创建了一个密码字段。当我运行该程序时,JOptionPane 出现并且看起来很棒,但是焦点始终转到“确定”按钮。我希望焦点开始于密码字段。我尝试过 requestFocus()requestFocusInWindow(),但这似乎不起作用。我需要做一些特殊的事情才能将焦点放在密码字段上吗?

请参阅下面的代码:

JPasswordField pf = new JPasswordField();
pf.requestFocusInWindow();
int okCxl = JOptionPane.showConfirmDialog(null, pf, "ENTER SUPERUSER PASSWORD", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);

最佳答案

您必须创建 JOPtionPane 的实例并使用 setWantsInput(boolean)方法。它不太方便,但您使用的构建器方法实际上仅适用于基本情况。然后您需要添加 ComponentListener到对话框请求选择您的密码字段。您可以在JOptionPane javadoc上找到更多类似的文档.

    final JPasswordField pf = new JPasswordField();
//Create OptionPane & Dialog
JOptionPane pane = new JOptionPane(pf, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
JDialog dialog = pane.createDialog("ENTER SUPERUSER PASSWORD");
//Add a listener to the dialog to request focus of Password Field
dialog.addComponentListener(new ComponentListener(){

@Override
public void componentShown(ComponentEvent e) {
pf.requestFocusInWindow();
}
@Override public void componentHidden(ComponentEvent e) {}
@Override public void componentResized(ComponentEvent e) {}
@Override public void componentMoved(ComponentEvent e) {}
});

dialog.setVisible(true);

关于java - 在 JOptionPane JPasswordField 中设置焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21734101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com