단일 창 Java 프로그램을 만들면 다음과 같은 것을 발견하게됩니다. iOS 개발과 같은 일을 많이하는 경향이 있음을 유의하십시오.Java에서 디자인을 분리하는 논리
+-------------------------------------------------------------------------------+
| |
| ExampleJFrame.java ExampleJPanel.java |
| | | |
| ExampleJFrameController.java -> ExampleJPanelController.java -> Component(s) |
| |
+-------------------------------------------------------------------------------+
나는 iOS 표준을 따르고 싶습니다. 이것은 내가 얻을 수있는 가장 가까운 곳입니다. 내 질문은 JPanel
, 제목, 위치, 크기 등을 설정하는 것과 같은 JFrame
과 같은 간단한 작업을 수행하는 경우입니다. (1) 서브 클래스 JFrame
여기서 나는 단지 ExampleJFrame
을 가질 것이고 객체는 전술 한 작업을 수행해야합니다. (2) ExampleJFrameController
만 새로 작성하여 JFrame
을 만들고 그 제목과 기타 등등을 설정해야합니까?
편집 : 두 번째 옵션을
, 내가 ExampleJFrameController
를 서브 클래 싱하기를 원한다면 자식 객체가 그것으로 아무것도 할 수 있기 전에, 부모 개체가 true
에 JFrame
의 가시성을 설정합니다. 그래서 아마도 옵션 3을 추가하는 것을 잊어 버렸을 것입니다 (이는 다소 "그래픽"에 의해 암시됩니다) : ExampleJFrame
과 ExampleJFrameController
을 모두 가지고 있습니다. ExampleJFrame would set its own size and location and title and
ExampleJFrameController would set its visibility. Then lies a problem: if
ExampleJFrame should know about
ExampleJPanel and
ExampleJFrameController should know about
ExampleJPanelController , how would I connect the
ExampleJPanelController to its
ExampleJPanel`? 아니면 그 문제를 해결할 수있는 세부 사항을 놓치고 있습니까?
내부적으로 JFrame을 사용하는 대신'JFrame'을 하위 클래스로 만드는 것은 나쁘지 않은 OOP 스타일이다. 기본적으로 Runnable을 구현하는 대신 Thread를 확장하는 사람들과 같은 문제 – Voo
'JFrame'을'JPanel' 구현체에서 호출하면 부모 클래스의 객체를 호출하고 거기에서부터 이동합니다. 다른 JFrame을 제어해야한다면 위의 다른 컨트롤러 클래스가 필요합니다. 구조를 원합니다.) – Jon
내 의견이 너무 큽니다. 내 편집 좀 봐. –