ConfirmDialog无效

时间:2013-11-23 13:25:35

标签: java swing joptionpane

当我点击“主”JFrame窗口中的按钮时,我正在尝试创建一个注册窗口。 出于某种原因,showConfirmDialog不会将OK_CANCEL_OPTION作为参数。 RegTemplate是一个JPanel,在我的注册窗口中有我想要的东西。

奇怪的是,我看了一些示例代码,我100%肯定有效,我已经检查了我的反对这一个,但我找不到任何真正的区别。顺便说一句,Marathon课程是我的“主要”课程窗口。

请告诉我这里的错误,我希望这段代码足够了。

class createListener implements ActionListener{
    public void actionPerformed(ActionEvent ave){
    RegTemplate reg = new RegTemplate();
    int choice = showConfirmDialog(Marathon.this, reg, "New participant", OK_CANCEL_OPTION);
    if (choice != OK_OPTION)
            return;
    DO SOMETHING IF OK IS CLICKED
    }
}

1 个答案:

答案 0 :(得分:2)

除非您的课程从JOptionPane延伸,否则OK_CANCEL_OPTION是一个未知的标识符,您的代码将无法编译。它应该是JOptionPane.OK_CANCEL_OPTION,而不是JOptionPane类中定义的公共常量。

试试这个:

int choice = showConfirmDialog(Marathon.this, reg, "New participant", JOptionPane.OK_CANCEL_OPTION);
    if (choice != JOptionPane.OK_OPTION){ ... }

另外,您应该查看Understanding Instance and Class Members文章。


修改

我从评论中提出这一点,因为它可能有用:

  

我添加了JOptionPane的静态导入。*;我把它弄成了静止的   我将在几个不同的弹出窗口中重用它   明白这可能是一个好的解决方案。

我认为这确实是一个不寻常但非常有效的解决方案,如本文所述:Static Imports