Java AWT / SWT / Swing : GUI를 계획하는 방법?



Answers

나는 손으로 GUI 레이아웃을하는 고풍의 친구들 중 한 명이다. 나는 또한 악명 높은 GridBagLayout 두려워하지 않는다.

비주얼 에이지에서 사용 된 코딩 표준을 에뮬레이션하여 나 자신을 단순하게 유지합니다. 몇 년 전 : 저는 많은 JPanels를 사용하여 GUI의 일부를 구성하고 각자 자신의 makeXXX() 메소드를 만들어 레이아웃하고 레이아웃합니다. 부모 패널 또는 생성자로 반환하십시오. 그렇게하면, 각 makeXXX 는 전체 작업의 작은 부분에만 집중해야합니다.

일부 구성 요소는 다양한 인스턴스 메소드로 액세스 할 수 있어야합니다. 인스턴스 필드로 선언합니다. 장식이나 레이아웃 일 뿐인 다른 것들은 makeXXX 메서드 외부에 노출 될 필요가 없습니다.

그게 대부분입니다. 나를 위해 일합니다.

Question

작은 그래픽 사용자 인터페이스로 이미 일부 응용 프로그램을 구현했습니다. 복잡한 것은 아니지만 구성 요소가 표시되지 않거나 예상대로 작동하지 않는 문제가 발생했습니다.

이제 내 질문 :

이러한 사용자 인터페이스는 어떻게 계획합니까? 변경해야 할 때 무엇을합니까? 어떻게 이상한 행동을 디버깅합니까?

이것은 거의 모든 유형의 GUI 설계에 적용됩니다. 물론 Microsoft Visual Studio를 사용하면 디자이너에서 볼 수있는 것을 거의 얻을 수 있기 때문에 큰 장점이 있습니다.

AWT를위한 훌륭한 오픈 소스 (또는 프리웨어) 디자이너가 존재합니까? 이미 주위를 둘러 보았고 정말 지적인 것을 찾지 못했습니다.

편집 : 지금까지, 나는 또한 손으로 모든 GUI를 만들었습니다. 물론 그것은 더 깨끗한 코드이지만 때로는 레이아웃 버그를 찾는 것이 매우 어렵습니다. MS에서 제공하는 Visual Studio가 대략 깨끗한 코드를 생성 할 수 있다면 다른 것들은 왜 없습니까?

Eclipse Visual Designer에 대해 들어 봤다. 이미 생산 준비가되어 있습니까?




비주얼 GUI 디자인을 위해 일시적으로 죽어 버린 (그러나 지금은 분명히 최소한 살아있는) 플러그인 이있다. Netbeans은 여전히 ​​그것을 지원하고있다. 결과 코드는 별보다 작았습니다. 적어도 그 코드베이스로 작업해야하는 사람들은 그다지 고통스럽지 않습니다.

나에 관해서는 필자는 사전에 종이에 계획을 세우고 첫 번째 시도에서 레이아웃이있는 패널의 모든 중첩을 시도하는 경향이있다. Java GUI 코드는 본래 내 경험에 따라 쓰기 전용입니다.

지난 번 내가 그런 일을 한 후에 필요한 모든 컨트롤을 만들고 여러 패널과 레이아웃 등에서 함께 연결했습니다.이 방법은 적어도 관리가 가능하고 변경해야 할 때 너무 많은 고통없이 작업했습니다.

필자는 강력한 디자이너 지원으로 인해 Winforms 및 WPF의 특정 레이아웃에 대해 너무 많이 생각하지 않는 경향이 있습니다. 또한 WPF는 XAML에서도 매우 쉽게 처리 할 수 ​​있습니다. 부분적인 클래스는 부분적으로 디자이너가 생성하고 부분적으로 필기 코드를 사용하면 매우 즐겁습니다. 아아, 자바 세계에서는 그런 것이 없다.




나는 나 자신을 위해 사용한다.

Pencil

먼저 프로토 타입을 작성한 다음 "손으로"코딩을 시작합니다 (즉, GUI 편집기를 사용하지 않음).




NetBeans의 Matisse 편집기는 상당히 편리하지만 코드가 생성되는 코드는 매우 수수하고 레이아웃이 약합니다. 그래서 저는 WYSIWYG 프로토 타이핑을 위해 NetBeans를 사용하고 나중에 모든 것을 수동으로 레코딩하여 두 세계를 최대한 활용하고 있습니다.




NetBeans는 WYSIWYG 방식으로 GUI를 구현하는 최선의 선택 일지 모르지만 많은 Java 개발자는 그리 어려운 일이 아니기 때문에 손으로 GUI를 작성합니다. 귀하의 컨트롤과 당신 사이의 국경과 갭의 두께에 대한 관리 괜찮아 :)




Links