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

时间:2013-08-23 05:46:53

标签: 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;
}

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

Login pop up

如果您点击右上角的“x”,它也会关闭。但是我想要取消JButton,如果它很容易的话。

  • 谢谢你的帮助

3 个答案:

答案 0 :(得分:6)

您需要使用OKCANCEL类型确认对话框。

JOptionPane.showConfirmDialog(
            frame, panel, "login", JOptionPane.OK_CANCEL_OPTION);

答案 1 :(得分:0)

单击按钮时,可以在JFrame上使用dispose()功能关闭框架。喜欢这个

jButton1.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e){
        frameName.dispose();
    }
});

答案 2 :(得分:0)

您需要使用JOptionPage.showOptionDialog()来添加按钮