inputdialog按钮如何工作。我以为他们和confirmdialog一样

时间:2016-01-09 22:49:41

标签: java netbeans

我正在编写一些代码来调出输入对话框,然后通过对话框读取以创建用于保存的txt文件。可悲的是,我没有那么远。我通常知道输入对话框的工作原理,但问题是我希望它在用户按下ok时触发。如果他按下取消或退出,则关闭窗口。

以下是代码:

    private void saveActionPerformed(java.awt.event.ActionEvent evt) {                                     
    if (JOptionPane.showInputDialog(rootPane, "Save as?", "Save as?", JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION)   {
 //continue code

}

}

这件事带来了我想混合String和int的neatbeans错误。问题是我不知道在哪里。我也尝试将整个Joptionpane保存在String中,但这会带来更多问题。 如果有人可以告诉我如何在按下确定按钮时触发代码,这将是非常棒的。

我认为它的工作原理与yes no选项相同。代码:

    if (JOptionPane.showConfirmDialog(rootPane, "HAVE FUN!", "Tutorial",
    JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
    System.exit(0);
    }

但看起来我错了。 谢谢你的回复!

1 个答案:

答案 0 :(得分:0)

showInputDialog返回用户输入的String,如果按下cancel或exit,则返回null。 showConfirmDialog返回一个选项,指示按下了哪个按钮,但它显示的消息是一个对象,这意味着你可以给它一个面板来显示。

public static void main(String[] args) {


    JPanel panel = new JPanel(new GridLayout(2, 1));
    panel.add(new JLabel("Input bla bla"));
    JTextField textField = new JTextField();
    panel.add(textField);

    if (JOptionPane.showConfirmDialog(null, panel, "Tutorial",
        JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
        JOptionPane.showMessageDialog(null, textField.getText());
    }
    else{
        System.exit(0);
    }

}