我应该如何组织我的 Java GUI?
我正在用 Java 创建一个游戏来娱乐,我正在尝试决定如何为 GUI 组织我的类。到目前为止,所有仅包含 swing 组件和布局(无逻辑)的类都位于名为“ui”的包中。我现在需要向组件(即按钮)添加侦听器(即 ActionListener)。侦听器需要与 Game 类进行通信。
目前我有: Game.java - 创建框架并向其添加面板
import javax.swing.*;
import ui.*;
public class Game {
private JFrame frame;
Main main;
Rules rules;
Game() {
rules = new Rules();
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main = new Main();
frame.setContentPane(main.getContentPane());
show();
}
void show() {
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) { new Game(); }
}
Rules.java - 游戏逻辑
ui 包 - 所有类创建新面板以与主框架的内容窗格交换 Main.java(主菜单)- 创建一个带有组件的面板,
现在我应该在哪里放置 Main 类的功能?游戏课上?单独上课?还是整个组织都错了?
谢谢
I'm creating a game in Java for fun and I'm trying to decide how to organize my classes for the GUI. So far, all the classes with only the swing components and layout (no logic) are in a package called "ui". I now need to add listeners (i.e. ActionListener) to components (i.e. button). The listeners need to communicate with the Game class.
Currently I have:
Game.java - creates the frame add panels to it
import javax.swing.*;
import ui.*;
public class Game {
private JFrame frame;
Main main;
Rules rules;
Game() {
rules = new Rules();
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main = new Main();
frame.setContentPane(main.getContentPane());
show();
}
void show() {
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) { new Game(); }
}
Rules.java - game logic
ui package - all classes create new panels to be swapped out with the main frame's content pane
Main.java (Main Menu) - creates a panel with components
Where do I now place the functionality for the Main class? In the game class? Separate class? Or is the whole organization wrong?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先:你所做的事情是出于好意。尝试让你的代码保持井井有条肯定会对你的编程有所帮助。但请记住这一点:开发好的代码不仅仅是组织和分类源代码。例如...您是否使用任何类型的 UML 模型?您正在应用任何设计模式吗? 你的类真的具有很高的凝聚力吗?怎么样
耦合?
所有这些都将指导您完成编写良好代码的过程,这似乎就是您此时想要的。所有这些的结果将使您的代码变得井然有序且易于维护。
First of all: it's a good intent what you have done. Trying to keep your code organized will certantly help you at programming. But try to keep this in mind: developing good code goes beyond organize and clasify your source code. For example... are you using any kind of UML Model? Are you applying any design pattern? Are your classes really highly cohesive? How about
coupling?
All those things will guide you through the process of writing good code, which seems to be what you want at this point. And the result of all that will make your code organized and easy to mantain.