我正在为Netbeans编写一个模块,我有一个按钮,点击该按钮会打开一个JFrame。
这是按钮的动作监听器类:
// ... (package and imports)
@ActionID(
category = "File",
id = "org.myorg.readabilitychecker.ReadabilityActionListener"
)
@ActionRegistration(
iconBase = "org/myorg/readabilitychecker/google.png",
displayName = "#CTL_ReadabilityActionListener"
)
@ActionReference(path = "Toolbars/File", position = 0)
@Messages("CTL_ReadabilityActionListener=Readability")
public final class ReadabilityActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JFrame readabilityFrame = new ReadabilityFrame();
readabilityFrame.setVisible(true);
}
}
在JFrame中我基本上有:
public static void main(String args[]) {
* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ReadabilityFrame().setVisible(true);
}
});
}
它还有一些其他自动生成的代码,但没什么重要的。
当我运行应用程序时,按钮出现在工具栏中,但是当我单击它时,JFrame不会打开。
我尝试检查actionPerformed()
方法中的打印是否会显示在输出终端中,但是我确实在调用JFrame时我错过了一些内容。
任何人都可以给我一个关于问题所在的提示吗?
答案 0 :(得分:0)
我认为问题在于框架的对象创建。尝试
ReadabilityFrame readabilityFrame = new ReadabilityFrame();
readabilityFrame.setVisible(true);
希望它有所帮助。
答案 1 :(得分:0)
我发现了问题所在。
自动生成的initComponents()方法有一行setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
,它总是抛出一个异常。
我刚刚将EXIT_ON_CLOSE
更改为DISPOSE_ON_CLOSE
,以不同的方式定义了框架,现在问题就消失了。