1

我通过按创建新项目在 Netbeans 上创建了新的 java 应用程序,它创建了 java 包。这完全没问题!当我添加新的 JFrame 时,它​​会创建并自动创建 MAIN METHOD,在完成 Matisse 之后,我的意思是放置一些 gui 组件,我想将 JDialog 添加到其中,我继续右键单击并创建 JDialog Form,它也创建了 MAIN METHOD本身也是如此。所以两个 MAINS 都混在一起了。这一直让我感到困惑。我的目标是创建名为 new 的 JMenuItem ,当我单击它时,我希望出现我的 JDialog 和类似项目创建对话框的东西。请帮忙 !在这些情况下如何组合到不同的组件?

问候

4

1 回答 1

1

“这总是令人困惑,确实有一些例子”

我不太确定是什么如此令人困惑。您的程序应该只有一个带有main方法的启动类。Netbeans 会在表单中为您创建一个main方法JDialog,因此只需删除该main方法即可。您需要的唯一main方法是您的主JFrame窗体。

你有你的JDialog表格

public class MyDialog extends javax.swing.JDialog {
    public MyDialog(final Frame parent, boolean modal) {
        super(parent, model);
        initComponents();
    }

    private void initiComponent() {
        ...
    }

    // delete the auto-generated main method
}

您的 JFrame 表单带有JMenuItem. 添加监听器JmenuItem以打开MyDialog

public class MyFrame extends javax.swing.JFrame {
    private javax.swing.JMenuItem jMenuItem1;

    public MyFrame() {
        initComponents();
    }

    /* Auto-generated code */
    private void initComponents() {
        jMenuItem1 = new JMenuItem();
        jMenuItem1.addActionListener(new java.awt.event.ActionListener(){
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
    }

    /* Auto-generated method */
    private jmenuItemActionPerformed(java.awt.event.ActionEvent evt) {
        /* Your hand written code */
        MyDialog dialog = new MyDialog(MyFrame.this, true);
    }

    public static void main(String[] args) {

    }
}

“在这些情况下如何组合成不同的组件?”

这甚至意味着什么?


边注

  • 我建议在使用 GUI Builder 工具之前先阅读Swing Tutotials并学习编写代码。
于 2014-03-21T09:18:32.613 回答