자바 스윙 -1

조현수·2023년 1월 20일
0

자바 스윙

목록 보기
1/4
post-thumbnail

스윙 복습 첫번째 !


컨테이너 : 여러 컴포넌트를 포함할 수 있는 특별한 GUI 컴포넌트로 내부에 반드시 하나의 배치 관리자를 가진다.

최상위 컨테이너 : 다른 컨테이너에 속하지 않고 독립적으로 화면에 출력될 수 있는 컨테이너, 수업 때는 JFrame을 사용할 듯

컴포넌트 : 컴포넌트 포함 불가, 컨테이너에 포함되어야 화면에 출력될 수 있는 GUI 객체. JComponent에는 스윙 컴포넌트의 공통적인 기능이 작성되어 있다.

--> GUI의 각각의 요소라고 생각하기.

여기까지 정리. JFrame을 이용해서 최상위 컨테이너를 만들고 그 컨테이너의 각각의 구성인 컴포넌트를 추가한다고 생각하면 될 것이다.

즉 JFrame 위에 JPanel 들을 붙일 꺼고 JPanel 위에 각 컴포넌트들을 올릴꺼야 이게 수업시간에 코딩할 기본 양식이야

‏‏‎ ‎

setTitle : 프로그램의 이름 지정

setSize : 프로그램의 x,y축의 크기 지정

setVisible : 프로그램이 눈에 보여야 하기 때문에 true를 주는 것으로 눈에 보이게 하겠다는 것! --> 가장 마지막에 한번 보여주는 이 코드 써주면 돼

코드에서 보면 생성자를 통해 만든 이후에 메인에서 호출 해줘야 JFrame이 화면에 보여주겠지

기본메뉴버튼에서 종료버튼이 중요하다. 누르면 창은 닫히지만, 프로그램이 종료된게 아니라 살아있는 상태가 된다. 그래서 종료하는 기본적인 기능을 추가해줘야 한다.

setDefatulCloseOperation(JFrame.EXIT_ON_CLOSE); --> 프로그램 진짜 종료.

책에서는 컴포넌트 부착을 컨텐츠팬에 하는데 교수님은 다르게 하심...(패널로 사용하자 )

교수님처럼 JFrame 위에 JPanel올리고 그 위에 컴포넌트 올려서 JPanel을 JFrame위에 붙이는걸로 공부하자.

‏‏‎ ‎


‏‏‎ ‎

배치관리자 : 컨테이너 내부에 있는 배치관리자 Layout Manager가 컨테이너에 부착되는 컴포넌트의 위치와 크기를 부착 시점에 결정해줌.

  • FlowLayout : 왼쪽->오른쪽으로 적당한 크기로 배치한다

  • BorderLayout : 가운데 정렬되어 5개의 영역의 크기에 맞추어 배열. (동서남북, 센터)

  • GridLayout : 2차원 격자로 나누고 셀의 크기와 동일하게 배열한다. (바둑판)

  • CardLayout : 겹쳐놓은 듯 배열. 잘 안쓴다.

Panel.add(button, BorderLayout.SOUTH); 이런 식으로 추가할 때 레이아웃 설정해도 되고

패널 자체에 레이아웃을 설정해도 돼! (panel.setLayout(new BorderLayout())

레이아웃 별로 좌우, 상하 간격 설정해줄 수 있어! ex) new FlowLayout(30,40)


자바 스윙에서 JPanel..

JPanel이란 쉽게 생각해서 조각난 프레임이라고 생각.

왜냐하면 프레임에서 했던 레이아웃 적용과 각종 UI 배치들을 JPanel에서 다 할 수 있기 때문.

위 그림은 JFrame에 바로 UI(컴포넌트)들이 붙었다면 이번에는 JPanel을 올리고 그 위에 UI들을 올리는 방식!

이 패널은 프레임처럼 레이아웃을 설정하여 각종 UI를 자신에 배치할 수 있다.

그 다음 패널 자신을(JPanel) 프레임(JFrame) 위에 올려둠으로써 자신 위에 있는 UI들을 보여준다.

JPanel. 이것을 왜 사용하느냐...

자바 애플리케이션을 만든다고 할 떄 지금까지 배운 레이아웃만으로는 배치하기 어려울 정도로 복잡한 배치를 해야한다. --> 이럴 때 중간중간 JPanel을 사용하면 불가능했던 UI의 배치를 할 수 있고 좀더 손쉽게 소스 코딩 가능해진다.

코드를 보면 Panel 위에 Panel을 넣을 수도 있음! 최종 Panel을 Frame에 더해주면 돼

레이아웃은 따로 공부하자.

‏‏‎ ‎

‏‏‎ ‎

‏‏‎ ‎

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글