Как я должен организовать свой Java GUI?

Я создаю игру в Java для забавы, и я пытаюсь решить, как организовать мои классы для GUI. До сих пор все классы только с компонентами колебания и расположением (никакая логика) находятся в пакете, названном "ui". Я теперь должен добавить слушателей (т.е. ActionListener) к компонентам (т.е. кнопка). Слушатели должны общаться с Игровым классом.

В настоящее время я имею: 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 содержания основного кадра (Главное меню) - создает панель с компонентами

Куда я теперь помещаю функциональность для Основного класса? В игровом классе? Отдельный класс? Или целая организация неправильно?

Спасибо

7
задан Mark Peters 30 June 2010 в 20:50
поделиться

1 ответ

Прежде всего: то, что вы сделали, - хорошее намерение. Попытка сохранить свой код организованным, несомненно, поможет вам в программировании. Но постарайтесь иметь в виду: разработка хорошего кода выходит за рамки организации и классификации исходного кода. Например...вы используете какую-либо модель UML? Вы применяете какой-либо шаблон дизайна? Ваши классы действительно очень сплоченные? Как насчет связывания?

Все это поможет вам в процессе написания хорошего кода, который, похоже, именно то, что вам нужно на данный момент. Результат всего этого сделает ваш код организованным и легким в обслуживании.

4
ответ дан 7 December 2019 в 14:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: