【问题标题】:JOptionPane YES NO OPTION [duplicate]JOptionPane 是 否 选项 [重复]
【发布时间】:2013-03-29 00:01:19
【问题描述】:

我有一个 JOptionPane 和是和否按钮。但是,无论您单击哪个按钮,它仍然存在。帮助!代码如下:

int dialogButton = JOptionPane.YES_NO_OPTION;
            JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);
            if(dialogButton == JOptionPane.YES_OPTION) {
                System.exit(0);
            if(dialogButton == JOptionPane.NO_OPTION) {
                  remove(dialogButton);
                }
              }

【问题讨论】:

标签: java swing applet awt joptionpane


【解决方案1】:

您实际上应该从选项窗格中获取结果:

dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);

否则,它仍然设置为JOptionPane.YES_NO_OPTION

更清洁的是:

if (JOptionPane.showConfirmDialog(null, "Are you sure?", "WARNING",
        JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
    // yes option
} else {
    // no option
}

虽然,我不确定这行在发布的代码中应该做什么:remove(dialogButton);

有关更多详细信息和示例,请查看How to Make Dialogs 教程。

【讨论】:

    【解决方案2】:
    int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING",JOptionPane.YES_NO_OPTION);
    
    if(dialogButton == JOptionPane.YES_OPTION) {
    System.exit(0);}else {remove(dialogButton);}
    

    这是正确的!

    【讨论】:

    • 但删除(对话框按钮);错了
    • 欢迎来到 StackOverflow!您可以edit您的帖子并删除您的cmets。请继续并将您的评论添加到您的答案中。当你这样做时,你应该描述为什么你认为这是一个很好的解决方案,以及为什么 remove() 是错误的。
    【解决方案3】:

    把代码改成

    int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);

    【讨论】:

      【解决方案4】:
      if(dialogButton == JOptionPane.YES_OPTION) { // <<< start
          System.exit(0);
              if(dialogButton == JOptionPane.NO_OPTION) {
                  remove(dialogButton);
              }
      }// <<< stop
      

      结果是因为外部if包含了另一个if语句,确保你没有在if语句旁边,它应该如下:-

      if(dialogButton == JOptionPane.YES_OPTION) {
          System.exit(0);
      }else {
          remove(dialogButton);
      }
      

      另外就是int dialogButton = JOptionPane.YES_NO_OPTION;这一行,改成

      int dialogButton = JOptionPane.showConfirmDialog (null, "Are you sure?","WARNING", dialogButton);
      

      【讨论】:

      • 这不是问题。否则,如果对我不起作用
      【解决方案5】:

      如果您希望 JOptionPane 消失,那么您可以:

      optionPane.setVisible(false);
      

      如果您不这样做,请查看不同的答案。

      【讨论】:

        【解决方案6】:
        if (JOptionPane.showConfirmDialog(this, "sfd", "sd", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
            jProgressBar1.setValue(jProgressBar1.getValue() + 10);
            jProgressBar1.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        }
        else {
            System.exit(0);
        }
        

        【讨论】:

          猜你喜欢
          • 2013-03-07
          • 1970-01-01
          • 2012-09-13
          • 2012-01-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-04
          相关资源
          最近更新 更多