Swing(javax.swing)
=>AWT는 운영체제의 자원을 가지고 GUI 프로그램을 하지만 Swing은 운영체제와 상관없이 JVM자원을 가지고 GUI 프로그램을 합니다.
=>운영체제 종류에 상관없이 모두 동일한 UI를 갖습니다.
=>더블 버퍼링을 이용하기 때문에 출력 속도도 AWT에 비해서 빠릅니다.
=>frame과 panel 쓰는 방법은 AWT와 같다.
1. JFrame
->윈도우에 해당하는 클래스
2. JPanel
->여러 개의 컴포넌트들을 묶어서 배치하기 위한 컨테이너
3.JScrollPane
->화면 출력 영역보다 더 큰 컴포넌트를 스크롤 바와 함께 출력하는 컨테이너
->하나의 컴포넌트만 배치할 수 있습니다.(JPanel과의 차이점)
4.보더와 툴팁을 추가할 수 있습니다.
border:경계선 - setBorder
tooltip:마우스를 올려 놓았을 때 보여지는 텍스트 - setTooltipText
5.JLabel
=>레이블
=>레이블에 이미지를 출력할 수 잇습니다
=>이미지 아이콘 만들기
new ImageIcon("이미지 파일의 경로")
패턴을 가진 무언가를 반복해서 보여주고 할 때는 배열이나 리스트를 생각할 수 있어야 합니다.
이미지를 바꿔가면서 보여주고 싶을 때도 마찬가지 입니다.
6. 버튼
1)JButton
->클릭해서 작업을 수행하도록 하기 위한 컴포넌트(이미지 가능)
2) JToggleButton
->눌러진 상태와 누를 수 있는 상태 2가지를 가진 버튼(이미지 가능)
3) JRadioButton
->여러 개 중에서 필수적으로 하나만 선택하는 경우에 사용하는 버튼
->ButtonGroup으로 묶어 주어야 하나의 그룹이 됩니다.
->라디오 버튼을 배치할 때 유의할 점은 그룹 내의 버튼 중에 하나는 선택된 상태로 시작하도록 해주어야 합니다.
->최근의 웹에서는 라디오 버튼 대신에 이미지를 묶어서 보여주는 경우가 많습니다.
4)JCheckBox
->여러 개 중에서 0개 이상을 서택할 수 있도록 할 때 사용하는 버튼
만약 새로운 버전이 나왔다면 뉴피쳐라고 해서 바뀐 부분만 메일로 보내주는 사이트가 있다. 가입해두면 좋다.
7. 텍스트 입력 컴포넌트
1)JTextField
->한줄의 문자열을 입력받기 위한 컴포넌트
2)JPasswordField
->한 줄의 문자열을 입력받는데 EchoChar를 설정해서 입력한 문자열이 아니라 EchoChar가 보이도록 하는 컴포넌트
->getPassword()를 호출하면 입력된 문자들을 Char[]로 리턴합니다.
->비밀번호는 문자 단위로 유효성 검사를 하는 경우가 많기 때문입니다.
3)JTextArea
->여러 줄의 문자열을 입력받기 위한 컴포넌트
8.toString() - 중요
->인스턴스를 문자열로 만들어서 리턴하는 메소드
->재정의 되어 있지 않으면 클래스이름과 해시코드를 리턴합니다.
->인스턴스를 출력하는 메소드에 대입하면 toString()의 결과가 출력됩니다.
->모든 언어에서 어떤 객체를 넣었는데 문자열로 변환이 된다면 toString()이 작용한 것입니다.
9.JComboBox
->여러 개의 항목 중에서 하나의 항목을 선택하기 위한 컴포넌트
->선택 항목이 여러 개 일 때는 라디오 버튼을 사용하지 않고 JComboBox를 이용하도록 하는 것이 좋습니다.
->iOS는 피커를 이용합니다.(근본적으로 아이폰에는 콤보박스가 없고 피커라는 것을 이용합니다.)
->항목을 설정할 때 String을 매개변수로 받는 것이 아니고 Object를 매개변수로 받는데, 그 이유는 화면에 출력할 때 toString()의 결과를 출력하기 때문입니다.
'JAVA 공책 > 수업 메모' 카테고리의 다른 글
[완전 중요] Object 클래스에 관하여 (0) | 2018.07.19 |
---|---|
컨테이너와 컴포넌트 (0) | 2018.07.18 |
Java, swing, Android의 view의 이벤트 처리형식 (0) | 2018.07.18 |
GUI - Java.awt 패키지의 component & 이벤트 처리 (0) | 2018.07.18 |
GUI 프로그램을 하는 방법 (0) | 2018.07.16 |