2011-02-05 7 views
0

참고 : 이것은 내가 복용하고있는 SWING 코스입니다.java SWING app에 대한 설계 질문

간단한 그래픽 패키지 (원형, 사각형 등)를 지정하는 과제가 있습니다.

I의 형상 파라미터를 입력하기위한 복수의 대화 상자를 갖는 생각했다

즉 :

포인트 (X)을 가지고 원은 X, Y을 갖는 Y 반경 직사각형 가지고 x, y, 폭, 높이 등

나는 폭, 높이 또는 반경 등을 허용하는 X, Y와 슈퍼 대화 상자 클래스를 생성하고 확장하는 생각

예를 들어, rectangleDialog가 필요한 추가 매개 변수를 사용하여 슈퍼 생성자를 호출하는 것입니다 :

public abstract class XYDialog extends JFrame { 
    public XYDialog(PARAMETERS ... params) { 
     // build the dialog by iterating through PARAMETERS 
    } 
} 


public class RectangleDialog extends XYDialog { 
    public RectangleDialog() { 
    super(PARAMETERS.WIDTH, PARAMETERS.HEIGHT); 
    } 
} 

는 슈퍼 클래스는

이 합리적인 접근 방식처럼 보이는가 GUI를 구축하기위한 책임이있다? 이게 말이 돼?

감사합니다.

+0

텍스트 메시지에는 완전히 다른 Dialog Swing 클래스 http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html이 있으므로이 이름을 사용하면 안됩니다. 실제로 스윙 대화 상자를 원 하든지 아니면 드로잉하고 싶은지 명확하게하십시오. –

+1

보너스 조언으로, 변수 개수 대신에'super (PARAMETERS.WIDTH | PARAMETERS.HEIGHT)'를 사용합니다. –

답변

1

예, 좋은 해결책이라고 생각합니다. 그러나 앞서 언급했듯이 수업의 이름을 다시 생각해보십시오. JFrame을 확장하는 경우 SomethingFrame이라고합니다. PARAMETERS가 일반 클래스 인 경우 대문자 여야합니다.

또한 JFrame 대신 JPanel을 확장하고 이러한 클래스를 설치 한 클래스가 JFrame 또는 JDialog에 배치 할 것인지를 결정하도록합니다. JFrame은 완전히 새로운 창을 만들고, 일반적으로 응용 프로그램에 대한 기본 창은 하나만 가지고있는 반면 대화 상자와 패널은 즉시 만들어집니다.

+0

"JFrame 대신 JPanel을 확장하여이 클래스를 설치 한 클래스가 JFrame 또는 JDialog에 배치할지 결정하십시오."또는 JOptionPane, JToolBar 또는 BorderLayout의 WEST 제약 조건. . –