ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022년 7월 19일 TIL
    Today I Learned 2022. 7. 19. 23:56

     

    • 월요일 아침까지 끝내고 싶었던 MVP가 오늘인 화요일 오후 3시 가량이 되어서야 끝났다.
    • 지금까지는 다른 모든 기능들을 새로운 JFrame에 띄우는 방식을 택했는데, 버튼을 누르면 하나의 화면에서 화면 전환이 이루어지도록 할 계획이다. 어떻게 할 수 있을까?
      • MainFrame에 ContentPanel을 하나 놓고, 버튼을 누를 때마다 ContentPanel에 그 작업을 수행하는 Panel을 인스턴스로 넣어주는 방식을 해볼까? 그러려면 어느 클래스에서든지 ContentPanel에 접근할 수 있어야 할 것 같다.
      • 아니면 프로그램이 시작될 때 일단 모든 패널들끼리 서로 알맞게 add된 상태로 만들어 상속 관계를 형성하고, 패널이 실행되는 시점에서는 getParent나 getComponent로 이렇게 저렇게 할 수 있는 방법이 없으려나?
      • Swing에서 interface 스타일로 도대체 어떻게 적용시킬 수 있는거지? 전략 패턴?
    • 전략 패턴을 고민해 보았다. 예를 들어 contentPanel이라는 interface가 있다고 하고, 각각의 패널들, 예를 들어 운동 계획 게시글 작성 패널, 운동 계획 게시판 패널, 운동 결과 게시글 작성 패널, 운동 결과 게시판 패널 같은 패널들이 contentPanel을 implement하는 패널들이라고 하면, 버튼을 눌렀을 때 이 contentPanel들이 만들어져서 최상위의 JFrame에 add되는 방식을 생각해볼 수 있을 것 같다. 근데 아무리 contentPanel을 그렇게 만든다고 해도, 결국 JFrame에는 어떻게 add해 줘야 하지?

    • 현재까지 프로그램의 구조도이다. 어떤 버튼을 누를 때마다, 메인 프레임에 있는 패널이 버튼이 가리키는 패널로 바뀌는 것을 계획하고 있다. 만들려는 각각의 패널들을 contentPanel로 만들어서 interface의 메서드를 각자 각기 다른 내용을 구현한다고 해도, 각 패널이 만들어지는 시점은 버튼을 눌렀을 때이고, 거기서 메인 프레임의 패널을 만든 패널로 바꾸는 것이 가능할까? 아니면 버튼을 누르면 생성되는 패널도 contentPanel이고, 그 버튼이 있던 본인 패널도 contentPanel이니까 혹시라도 바꿔치기가 가능할까?
    • interface 메서드의 인자로 메인 프레임을 줄 수도 있겠지만, 그럴꺼면 interface의 구현체가 아닌 그냥 패널로 만들어도 되지 굳이 interface로 구현할 이유가 있을까 싶기도 하다.
    • 이걸 고민한다고 팀원분들의 프로그램을 조금 확인해 주었던 40분 가량의 시간을 제외하면 7시부터 지금까지의 시간을 다른 계획했던 진도를 나가지 못하고 날려먹었다. 답답해 미칠 지경이다. 머릿속에는 '일단 만들고 봐!'라는 생각과 '그냥 막 갔다간 손쓰기 어려울 정도로 꼬이게 될 거야!' 라는 두 생각이 치열하게 불꽃을 튀기고 있다. 금요일에 가까워져 갈 수록 일단 만들고 보자는 쪽으로 가까워지고 있다. 부족한 Java 지식과 디자인에 대한 이해, 모델 구상 능력, 진행력에 탄식하는 한 주이다.

     

     

     

    댓글

Designed by Tistory.