当我点击“主”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
}
}
答案 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