기록하는 개발자

자바 #7 기본적인 스윙 컴포넌트와 활용 본문

JAVA

자바 #7 기본적인 스윙 컴포넌트와 활용

밍맹030 2020. 1. 5. 15:32
728x90

기본적인 스윙 컴포넌트와 활용

JComponent

JLabel

용도 : 문자열이나 이미지를 컴포넌트화 해서 출력하기 위한 목적

 

생성자

-JLabel()

- JLabel(Icon image)     : 이미지 파일로부터 이미지 읽어올 때

Ex)

 

- JLabel(String text) : ex) new JLabel(“happy”);

- JLabel(String text, Icon image, int hAlign);

 

hAlign : 수평 정렬 값으로 SwingConstants.LEFT, SwingConstants.Right, SwingConstants.Center 중 하나

 

JButton

버튼 모양의 컴포넌트로 버튼을 선택하면 Action 이벤트 발생

 

생성자

-JButton () : 빈 버튼

-JButton (Icon image) : 이미지 버튼

-JButton(String text) : 문자열 버튼

-JButton(String text, Icon image) : 이미지+문자열을 가진 버튼

 

1.이미지 버튼 만들기

    (1) 하나의 버튼에 3 개의 이미지 연결

-마우스 접근에 따라 서로 다른 3 개의 이미지 출력 가능

-사용자의 버튼 조작에 대한 시각적 효과를 극대화

 

    (2) 3 개의 버튼 이미지

-(1) 버튼의 보통 상태 때 출력되는 이미지

생성자에 이미지 아이콘 전달

-이미지 설정 메소드 : JButton의 setIcon(Icon image)

-(2) 버튼에 마우스가 올라갈 때 출력되는 이미지

이미지 설정 메소드 : JButton.setRolloverIcon(Icon);

-(3) 버튼을 누르고 있는 동안 출력되는 이미지

이미지 설정 메소드 : JButton.setPressedIcon(Icon)

 

    (3)이미지 아이콘 생성

-new ImageIcon(이미지 경로명);

예) new ImageIcon("images/normalIcon.gif);

 

 

2.레이블과 버튼 정렬

-setHorizontalAlignment 수평 정렬 : 컴포넌트 내에 이미지와 텍스트의 수평 위치

-SetVerticalAlignment 수직 정렬 : 컴포넌트 내에 이미지와 텍스트의 수직 위치

 

JCheckBox

-선택과 비선택의 두 선택만 가지는 체크 버튼

 

1. 생성자

- JCheckBox()

- JCheckBox(String text)

- JCheckBox(Icon image)

- JCheckBox(String text, Boolean selected)

- JCheckBox(Icon image, Boolean selected)

- JCheckBox(String text ¸Icon image)

- JCheckBox(String text , Icon image, Boolean selected)

 

-selected : true 이면 선택 상태로 초기화, 디폴트는 해제 상태

 

 

2. 체크박스 생성

-문자열 체크 박스

Ex) 사과 텍스트를 가진 체크 박스 생성

 JCheckBox c=new JCheckBox(“사과”);

 

배 텍스트를 가진 체크 박스 생성

JCheckBox c=new JCheckBox(“배”, true);

 

-이미지 아이콘을 가진 체크 박스 생성 예

체크 박스 모양이 출력 되지 않음.

선택 상태를 표현하는 이미지 아이콘을 따로 지정해야 한다.

 

Ex) cherry.jpg 이미지와 "체리" 텍스트를 가진 체크 박스 생성 예

ImageIcon cherryIcon = new ImageIcon("images/cherry.jpg");

ImageIcon selectedCherryIcon = new ImageIcon("images/selectedCherry.jpg");

JCheckBox cherry = new JCheckBox("체리", cherryIcon); //체리 텍스트를 가진 체크박스 생성

cherry.setSelectedIcon(selectedCherryIcon); // 선택 상태의 이미지 달기​

 

JCheckBox 에서 Item 이벤트 처리

:체크 박스를 클릭 할 때 아이템 이벤트 객체를 만든 다음 해당 이벤트 객체를 가지고 이벤트 리스터 인터페이스의 추상 메소드를 불러옴

 

- 1) item 이벤트 : 체크 박스나 라디오 버튼의 선택 상태가 바뀔 때 발생하는 이벤트

-마우스나 키보드로 체크박스의 선택 상태를 바꾸는 경우

-프로그램에서 선택상태를 바꾸는 경우

JCheckBox c = new JCheckBox("사과");

c.setSelected(true); // 선택 상태 변경

- 2) itemlistener 인터페이스의 추상 메소드

void itemStateChanged(ItemEvent e)

 

- 3) item의 주요 메소드

int getStateChange()

:return 값은 선택된 경우 ItemEvent.SELECTED, 해제된 경우 ItemEvent.DESELECTED

 

Object getItem()

:이벤트를 발생시킨 아이템 객체 return, 체크 박스의 경우 JCheckBox 컴포넌트의 레퍼런스 return

 

JRadioButton(라디오 버튼 컴포넌트)

: 여러 버튼으로 그룹을 형성되며 다른 버튼이 선택되면 이전에 선택된 버튼은 자동 해제.

 

체크박스와의 차이점

-체크 박스는 각 체크 박스마다 선택, 해제 가능

-라디오 버튼은 그룹에 속한 버튼 중 하나만 선택 상태가 됨

 

1) 생성자

-JRadioButton()

-JRadioButton(Icon image)

-JRadioButton(Icon image, boolean selected)

-JRadioButton(String text)

-JRadioButton(String text, boolean selected)

-JRadioButton(String text, Icon image)

-JRadioButton(String text, Icon image, boolean selected)

 

 

2) 라디오 버튼 생성 과정

그룹 생성  컴포넌트 생성 그룹에 버튼 add 컨테이너에 버튼 add

 

TextField

: 한 줄 짜리 텍스트 입력 창을 구현한 컴포넌트

텍스트 입력 도중 엔터 키를 입력하면 action 이벤트 발생

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

 

1)생성자

-JTextField() : 빈 텍스트 필드

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

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

-JTextField(String text, int cols) : text 문자열, 입력 창의 열 개수 cols 로 초기화

 

2) 주요 메소드

-문자열 편집 불가능하게 하기 :JTextField.setEditable(false);  편집 안되도록

-입력 창에 문자열 출력 : JTextField.setText("hello");

문자열의 폰트 지정 : JTextField.setFont(new Font("고딕체", Font.ITALIC, 20);

 

TextArea

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

 

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

 

1)생성자

-JTextArea() : 빈 텍스트 영역

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

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

-JTextArea(String text, int rows, int cols)

 

728x90

'JAVA' 카테고리의 다른 글

[Java] String 내장 함수  (0) 2021.07.28
[Java] StringBuffer와 StringBuilder  (0) 2021.07.28
자바 #6 이벤트 처리  (0) 2020.01.05
자바 #5 JAVA GUI  (0) 2020.01.05
자바 #4 컬렉션  (0) 2020.01.05