자바 스윙 - 4

Chooooo·2023년 1월 20일
0

자바 스윙

목록 보기
4/4
post-thumbnail

자바 스윙 복습 네번째 !


그래픽 기반

  • 선, 원, 도형, 이미지를 직접 그리는 그래픽 화면 구성.

자바 스윙 네번째 - 그래픽 image

자바 스윙 네번째 - 그래픽 image

자바 스윙 네번째 - 그래픽 image

교수님이 강의해주신 부분만 공부.

JTextField, 텍스트 필드 컴포넌트

  • 텍스트 필드란, 한줄짜리 텍스트 입력 창을 구현한 컴포넌트

  • 텍스트 입력 도중 Enter 키가 입력되면 Action 이벤트 발생.

  • 입력 가능한 문자 개수와 입력 창의 크기는 서로 다르다.

JTextField() 빈 텍스트필드

JTextField(int cols) : 입력 창의 열의 개수가 cols 개인 텍스트 필드

JTextField(String text) : text 문자열로 초기화된 텍스트 필드

JTextField(String text, int cols) : 입력 창의 열의 개수는 cols개 이고 text 문자열로 초기화된 텍스트필드

‏‏‎ ‎

JTextArea, 텍스트영역 컴포넌트

텍스트 영역이란?

  • 여러 줄을 입력할 수 있는 텍스트 입력 창

  • JScrollPane 컴포넌트에 삽입하면 스크롤바 지원

‏‏‎ ‎

JTextArea() : 빈 텍스트 입력

JTextArea(int rows, int cols) : 입력창이 rows * cols개의 문자 크기인 텍스트 영역

JTextArea(String text) : text 문자열로 초기화된 텍스트영역

JTextArea(String text, int rows, int cols) : 입력 창이 rows * cols개의 문자 크기이며 text 문자열로 초기화된 텍스트영역

‏‏‎ ‎

JTextField든 JTextArea든 입력을 못받게 하고 싶으면

setEnabled(bool) 메서드에 false를 주면 돼!!!!

JTextArea에 setText를 쓰면 그냥 내용을 갱신하는 느낌이고

계속해서 추가하고 싶다면

append(msg) 메서드로 내용을 추가하자!!!

*****

TextField, TextArea 모두 입력은 불가하면서 텍스트 색상도 바꾸고 싶다면 setEditble(false)을 쓰면 된다!!!

setEnabled(false)를 쓰면 입력을 불가하게 만들고 텍스트 색상이 하얀색으로 고정이 되기 때문!



‏‏‎ ‎

스윙 컴포넌트 그리기

색상 선택, 문자열 그리기, 도형 그리기 및 칠하기, 이미지 그리기 클리핑 등의 다양한 기능.

paintComponent() 메서드

  • 모든 스윙 컴포넌트가 가지고 있는 메서드로서, 스윙 컴포넌트가 자신의 내부를 그리는 paintComponent() 메서드의 원형은 다음과 같다.

  • void paintComponent(Graphics g); //컴포넌트 내부 모양을 그린다.

  • paintComponent()는 JComponent의 추상 메소드이다.

  • Graphics 객체는 AWT 패키지에 속해 있다.

자바 스윙 네번째 - 그래픽 image

  • 그림도 패널에 계속 그릴꺼야!!! + 오버라이딩해서 paintComponent 사용

자바 스윙 네번째 - 그래픽 image

‏‏‎ ‎

‏‏‎ ‎

그래픽스 기능.

자바 스윙 네번째 - 그래픽 image

*** 강의 중 설명한게. 기본적으로 우리가 프레임도, 패널도, 버튼도, 레이블도, 다 Component가 조상이다! Component라는 클래스는 기본적으로 이벤트에 마우스 이벤트, 키보드 이벤트를 기본적으로 가지고 있어.


이제 본론으로, paintComponent를 통해서 그림을 그릴 건데 그냥 그릴 수는 없으니까 자기가 그리는 영역에 대한 정보가 인자로 들어온다. 그걸 Graphics g라고 한다.

그래픽스의 객체가 입력 인자로 들어오는데 이걸 활용하면 그 컴포넌트 영역에 해당되는 칼라 값들 그런 것들을 다 조작할 수 있게 된다. 그래서 모든 스윙 컴포넌트가 이 메소드를 가지고 있다.


그래픽스 g는 그림을 그리는 draw 함수가 여러개 있다. drawLine, drawOval, drawRect,,, 등 많다!

자바 스윙 네번째 - 그래픽 image

draw__ 호출할 때마다 패널에 하나씩 그려주는거야! (알아서. 화면에 보여주기까지 해줌.)

‏‏‎ ‎

또한 색은 한번 setColor해주면 그 색을 계속 유지한다!! 그렇기에 색을 여러개 써주고 싶으면 계속 색을 갈아끼우면 돼

또한 그림을 그리는 것에 있어서 draw___ fill___ 두가지가 있는데, draw는 속이 비어있고 fill은 해당 색으로 다 채워서 준다.

paintComponent는 화면에 나타날 때 부른다. 처음에 뜰 때 부르고, 화면이 변할 때 부른다. (영역이 변하면 다시 만들어지고 계속 만들어.)

‏‏‎ ‎

  • 폰트, 컬러

자바 스윙 네번째 - 그래픽 image


‏‏‎ ‎

각 도형 별 그리기 및 인자들 확인!!!

자바 스윙 네번째 - 그래픽 image

자바 스윙 네번째 - 그래픽 image

자바 스윙 네번째 - 그래픽 image

자바 스윙 네번째 - 그래픽 image

repaint() 기능은 내가 무언가를 다시 그린 이후에 화면에 나타나게 해줘야 할 때 호출하면 된다. (최상단에서 호출해주기)_

‏‏‎ ‎

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

0개의 댓글