2010-05-09 8 views
7

재미있게 Java로 게임을 만들고 있는데 GUI 용 클래스를 구성하는 방법을 결정하려고합니다. 지금까지 스윙 구성 요소와 레이아웃 (논리 없음) 만있는 모든 클래스는 "ui"라는 패키지에 있습니다. 이제는 구성 요소 (예 : 버튼)에 리스너 (예 : ActionListener)를 추가해야합니다. 청취자는 Game 클래스와 통신해야합니다. 현재Java GUI를 어떻게 구성해야합니까?

내가 가진 : 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 Menu) - 구성 요소가있는 패널을 만듭니다.

이제 Main 클래스의 기능을 배치 할 수 있습니까? 게임 수업에서? 별도의 수업? 아니면 전체 조직이 잘못 되었습니까?

감사합니다.

답변

4

우선 : 당신이 한 일은 좋은 의도입니다. 귀하의 코드를 체계적으로 정리하려고 노력하면 프로그래밍에 많은 도움이됩니다. 그러나 이것을 염두에 두십시오 : 좋은 코드를 개발하는 것은 소스 코드를 구성하고 분류하는 것 이상입니다. 예를 들어 ... 어떤 종류의 UML 모델을 사용하고 있습니까? 디자인 패턴을 적용하고 있습니까? Are your classes really highly cohesive? How about coupling?

이 모든 것들이 좋은 코드를 작성하는 과정을 안내해 줄 것입니다.이 코드는 여러분이 지금 원하는 것처럼 보입니다. 그리고 모든 것의 결과는 코드를 체계적이고 쉽게 만들 수 있습니다.

+4

왜 필요한지 모르는 경우 UML을 사용하지 마십시오. 디자인 패턴을 이해하지 않는 한하지 마십시오. 코드를 간단하게 유지하고 필요에 따라 코드를 깨끗하게 유지하십시오. – Kirill

+1

@Kirill : 전적으로 당신에게 동의합니다. 귀하의 의견에 감사드립니다. – Cristian

관련 문제