我已经在Netbeans上创建了新的java应用程序,按下create new project,它创建了java包。这完全没问题!当我添加新的JFrame时,它会自动创建MAIN METHOD,在我完成了Matisse之后,我的意思是放入一些gui组件,我想添加JDialog到其中,我点击包右键并创建JDialog Form,它也创建了MAIN METHOD。所以这两种主干道混在一起了。这一直困扰着我。我的目标是创建名为new的JMenuItem,当我点击它时,我希望我的JDialog出现,类似于项目创建对话框。救命啊!在这些情况下如何组合不同的组件?
对
"这总是让人困惑,做一些例子"
我不太确定是什么让人这么困惑。您的程序应该只有一个带有main
方法的启动类。Netbeans将在JDialog
表单中为您创建一个main
方法,因此只需删除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
}
你有一个带有JMenuItem
的JFrame表单。向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教程并学习手写代码。