带有用户名和密码输入的JOptionPane

Ger*_*ret 8 java jpanel jbutton jtextfield joptionpane

我有自己的Dialog弹出两个文本字段,两个JLabel和一个"ok"JButton.弹出窗口是一个登录窗口.窗口工作完美我只是想知道我如何能够添加"取消"JButton,因此用户可以取消登录.

这是我的窗口代码:

public Hashtable<String, String> login(JFrame frame) {
    Hashtable<String, String> logininformation = new Hashtable<String, String>();

    JPanel panel = new JPanel(new BorderLayout(5, 5));

    JPanel label = new JPanel(new GridLayout(0, 1, 2, 2));
    label.add(new JLabel("E-Mail", SwingConstants.RIGHT));
    label.add(new JLabel("Password", SwingConstants.RIGHT));
    panel.add(label, BorderLayout.WEST);

    JPanel controls = new JPanel(new GridLayout(0, 1, 2, 2));
    JTextField username = new JTextField();
    controls.add(username);
    JPasswordField password = new JPasswordField();
    controls.add(password);
    panel.add(controls, BorderLayout.CENTER);

    JOptionPane.showMessageDialog(frame, panel, "login", JOptionPane.QUESTION_MESSAGE);

    logininformation.put("user", username.getText());
    logininformation.put("pass", new String(password.getPassword()));
    return logininformation;
}
Run Code Online (Sandbox Code Playgroud)

如果需要,请点击登录窗口的屏幕截图:

登录弹出

如果你点击右下角的"x",它也会关闭.但我想要取消JButton,如果它很容易.

  • 谢谢你的帮助

Rav*_*yal 7

您需要使用OK,CANCEL键入确认对话框.

JOptionPane.showConfirmDialog(
            frame, panel, "login", JOptionPane.OK_CANCEL_OPTION);
Run Code Online (Sandbox Code Playgroud)