我正在写一个团队的应用程序,目前使用3个不同的JFrames。从我一直在阅读的内容来看,我认为这是一条错误的路,但我不知道如何继续。如何用第二个应用程序替换应用程序中的第一个JFrame?
当应用程序启动时,它打开一个小Jframe,允许用户点击4个按钮之一。如果点击开始游戏或添加图像,则会打开另一个窗口。游戏窗口,用于游戏和图像编辑窗口,用于图像。当他们关闭窗口时,第一个JFrame会重新出现。
我创建了第一个JFrame,但一直无法打开第二个JFrame。我不知道这是否是我的代码中的问题,或者是否第二个JFrame中的某些内容没有正确设置来调用它。
第一个JFrame: package mmlgame;
import javax.swing.JFrame;
public class MMLGame extends javax.swing.JFrame {
public MMLGame() {
initComponents();
}
private void btnExitActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
private void btnStartGameActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
GameScreen frame = new GameScreen();
frame.setVisible(true);
}
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MMLGame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnAddImage;
private javax.swing.JButton btnCredits;
private javax.swing.JButton btnExit;
private javax.swing.JButton btnStartGame;
private javax.swing.JPanel jPanel1;
private javax.swing.JLabel lblLogo;
// End of variables declaration
}
我还没有设置所有的按钮。在继续下一步之前,我喜欢让每个人都工作。 第二个JFrame: 包mmlgame;
public class GameScreen extends javax.swing.JFrame {
public GameScreen() {
initComponents();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GameScreen().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JComboBox jComboBox1;
private javax.swing.JLabel jLabel17;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel pnlGameScreen;
// End of variables declaration
}
第二个JFrame目前有一个标签。我是团队中的一员,建议使用JFrames,所以如果我错了,请让我知道,这样我可以让团队朝着正确的方向前进。 此外,我目前正在通过Creating a GUI With JFC/Swing的方式工作。如果有什么能够更好地解释这些概念,请让我知道。
另请参见[*使用多个JFrames,好/坏实践?*](http://stackoverflow.com/q/9554636/230513) – trashgod
它应该这样工作..也许你没有把代码为事件绑定,因为我认为它是由netbeans生成的..无论如何,尝试首先做一个简单的system.out.print,看看你的按钮是否绑定到事件处理程序..如果没有,你应该点击netbeans中的按钮gui编辑器并检查事件,看看动作侦听器是否绑定到这个处理程序.. –
当然,我们在这里没有讨论多个jframes问题..你应该阅读trashgods链接.. –