일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 리액트
- 자바스크립트
- react hook
- 컴퓨터 네트워크
- 디자인 패턴
- vanillaJS
- 프로그래머스 자바
- websocket
- 데이터모델링과마이닝
- useState
- 코틀린
- 자바 공부
- 코딩테스트 고득점 Kit 완전탐색
- NextJS
- 프로그래밍 언어론
- Java
- 백준
- 장고
- react firebase
- JavaScript
- 프로그래머스
- 자바
- 프로그래머스 완전탐색
- useEffect
- 코딩테스트 고득점 Kit
- react
- design pattern
- 리액트 훅
- codesandbox
- React JS
- Today
- Total
기록하는 개발자
자바 #7 기본적인 스윙 컴포넌트와 활용 본문
기본적인 스윙 컴포넌트와 활용
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)
'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 |