【发布时间】:2015-08-03 13:41:38
【问题描述】:
JFrame按钮打开jdialog:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
打开对话框的JDialog方法:
public void run() {
AddClient dialog = new AddClient(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
我的 JDialog 类名为 AddClient,我的 JFrame 类名为 MainWindow。它们所在的包名为 my.javaapp
我将如何继续这样做?我对java很陌生,到目前为止一直在使用python并使用netbeans进入java swing gui builder,我计划观看教程并阅读java文档以了解更多关于java的信息,但我想首先能够打开此 jdialog。
在问这个问题之前,我搜索了很多,并且我阅读了其他被要求或多或少解决同样问题的问题,但我仍然无法解决我的问题,所以我问了。
解决方案:
从你要弹出的 gui 所在的类中删除 main 函数,例如
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJDialog1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJDialog1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJDialog1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJDialog1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
NewJDialog1 dialog = new NewJDialog1(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
在删除之前,复制这一行:
NewJDialog1 dialog = new NewJDialog1(new javax.swing.JFrame(), true);
在按下后右键单击要弹出此窗口的按钮,事件>动作>执行的动作。像这样粘贴它:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
NewJDialog1 dialog = new NewJDialog1(new javax.swing.JFrame(), true);
dialog.setVisible(true);
}
记得添加最后一行,这就是显示对话框的内容。
【问题讨论】:
-
“使用 netbeans 进入 java swing gui builder” 这就是“失去所有希望”的地方。暂时放弃 automagic IDE,学习如何编写 1) Java 和 2) GUI。
-
“我阅读了其他问题,他们或多或少地解决了同样的问题” 还有哪些问题(链接到最接近的三个)?他们为什么不帮忙?
-
我知道我会得到第一条评论作为答案,哈哈,你是对的。我会开始的,我只是想从我想要的点开始学习,而不是从一开始,我只是想从那里继续学习我需要的东西..我仍然会这样做..我'将为该对话框编写后端进程代码,当它完成后,我对 java 的了解更多,所以我会回来从该主窗口打开对话框。无论如何,谢谢!
-
我会编辑这个问题并解释解决方案,一旦我学会了如何去做以及为什么我之前不能让它工作,这样这个问题就不会浪费了..