【问题标题】:Netbeans Module: open JFrame on button clickNetbeans 模块:单击按钮打开 JFrame
【发布时间】:2018-10-05 07:21:54
【问题描述】:

我正在为 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 时遗漏了一些东西。

谁能告诉我问题出在哪里?

【问题讨论】:

  • 您是完全编码还是只是右键单击并添加了一个框架并在按钮中单击您编写了代码?还是手动编写所有代码?
  • "或者只是右键单击并添加一个框架,然后在按钮中单击您编写的代码" - 我这样做了。在调试时,我注意到当我尝试调用 ReadabilityFrame readabilityFrame = new ReadabilityFrame();它调用具有这一行“setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);”的方法 initCompnents()。在这里,它给出了一个异常“变量信息不可用,源编译时没有 -g 选项”并停止执行。

标签: java netbeans module jframe


【解决方案1】:

我发现问题出在哪里了。

自动生成的方法 initComponents() 有 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 行,它总是抛出异常。

我刚刚将EXIT_ON_CLOSE 更改为DISPOSE_ON_CLOSE,以不同的方式定义了框架,现在问题消失了。

【讨论】:

    【解决方案2】:

    我认为问题在于框架的对象创建。试试

     ReadabilityFrame readabilityFrame = new ReadabilityFrame();
     readabilityFrame.setVisible(true);
    

    希望对你有帮助。

    【讨论】:

    • 用这个改了之前的代码后问题依旧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2013-03-09
    • 2013-07-12
    • 2016-12-02
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    相关资源
    最近更新 更多