我该如何组织我的Java GUI?

Spe*_*cer 7 java user-interface swing organization

我正在用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(); }

}
Run Code Online (Sandbox Code Playgroud)

Rules.java - 游戏逻辑

ui包 - 所有类创建新面板以与主框架的内容窗格交换出来Main.java(主菜单) - 创建一个包含组件的面板

我现在在哪里为Main类放置功能?在游戏课上?单独上课?或整个组织是错的?

谢谢

Cri*_*ian 4

首先:你所做的事情是出于好意。尝试让你的代码保持井井有条肯定会对你的编程有所帮助。但请记住这一点:开发好的代码不仅仅是组织和分类源代码。例如...您是否使用任何类型的 UML 模型?您正在应用任何设计模式吗?你们的班级凝聚力真的很高吗?耦合怎么样?

所有这些都将指导您完成编写优秀代码的过程,这似乎就是您此时想要的。所有这些的结果将使您的代码变得井然有序且易于维护。

  • 除非您知道为什么需要 UML,否则不要进行 UML。除非有意义,否则不要使用设计模式。保持代码简单,保持代码整洁,根据需要进行重构。 (4认同)