GUI(화면구성)
1) awt : 그래픽이 운영체제에 있는 그래픽을 가져와서 사용하기 때문에 운영체제 영향을 받음.
운영체체에 따라 느낌이 다르다.
import java.awt.*;
ex) Frame ,Panel, Button, TextField, .....
2)swing : 자체적으로 Look and Feel을 가지고 있어서 내가 선택하는 그랙픽을 기반으로 GUI구성된다.
운영체체마다 동일한 느낌으로 화면구성이된다.
import javax.swing.*;
ex) JFrame ,JPanel, JButton, JTextField, .....
*용어정리
- Container : 창의 역할(반드시 한개이상의 Container가 필요하다)
ex) JFrame-메인창, JPanel - 서브창 , JDialog - 팝업창......
: Component들이 올려질 영역
JFrame위에 Component를 추가 : ~.add(Component con)
- Component : Container위에 올려져서 화면구성을 담당하게될 요소들....
ex) JButton, JTextField, JTextArea, JComboBox ,........
-LayoutManager : Container위에 component들이 올려질때 배치방법
ex) BorderLayout - JFrame, JDialog
FlowLayout - JPanel
GridLayout
CardLayout
GridBackLayout
--------------------------------------------------------------
* Event처리
: import java.awt.event.*;
: 사용자의 어떤 액션(행동)이 일어났을때 처리해야하는 기능!!!!
: 자바에서 액션에 해당하는 즉 사용자의 액션이 일어나면 호출되어지는 메소드들이 이미 정의되어 있다.(EventHandler)
- 추상화(interface)로 만들어져 있고 필요한 사람이 재정의(구체화) 시켜서 사용한다.
Event 관련 interface => XxxListener 있다.
단점) 모든메소드를 재정의 해야한다.!!(필요한 메소드는 단 한개라 하더라도 모두 재정의 필수)
Event관련된 interface를 미리 implements한 구현객체 들을 제공한다. ==> XxxAdapter 클래스 제공한다.- 메소드가 2개이상인겨우
단점) 결국은 상속은 한개밖에 할수없다!!!!
XxxAdapter를 사용하고 싶다면 결국 이벤트를 처리하는 클래스는 각각 만들어야한다.!!!
*이벤트를 처리하는 방법
ex) btn1 버튼을 클릭하면 "안녕" 이라고 출력하고 싶다.!!
1) 이벤트를 발생시키는 주체(Component)를 찾는다.
: JButton - > btn1
2) 1)에 찾은 주체가 발생할수 있는 이벤트종류를 찾는다. - XxxEvent
: ActionEvent
3) 2)에서 찾은 XxxEvent에 해당하는 XxxListener 또는 XxxAdapter를 선택하여 메소드를 재정의한다. - 코딩시작!!!!
: 원하는 기능을 만든다( "안녕" 출력한다)
4) 이벤트 등록
이벤트발생주체.addXxxxListener( ???? ); -> 인수로 전달되는 값은 3)을 만들어놓은 주체를 뜻함.
: ??? 자리에 들어갈수 있는 값은 3가지 형태
1) this
2) 외부객체생성한 변수
3) Annoymous inner 클래스
=======================================================
- Inner Class 형태
class A{
int a=10;
class B{ //클래스의 역할 할수 있어서 상속, 구현 모두 가능하다~~
//이너 클래스안에서는 outer클래스의 모든 메소드, 모든 필드를 접근할수 있다!!!!!
//단점은 inner클래스는 Outer클래스 내부에 존재하기 때문에 Outer클래스 없이는 사용할수 없다.
// B 클래스를 독립적으로 사용할수 없다. A클래스의 속성과 같은 것.
}
}
-컴파일을하면 클래스 생성
A.class
A$B.class -> outer클래스이름$inner클래스이름.class
* Inner클래스는 선언위치와 선언 방법 에 따라 3가지 형태가 존재한다.
1) 인스턴스 맴버클래스
class A{
class B{ }
}
2) 정적(static) 맴버클래스
class A{
static class B{ }
}
3) 로컬(메소드 내부에서 선언된) 클래스
class A{
public void aa(){
class B{ }
}
}
'Web > MSA Full-Stack 과정' 카테고리의 다른 글
Kosta Day20 : IO / Thread / Lambda / Enum (0) | 2022.02.17 |
---|---|
Kosta Day19 : Inner class / IO Stream (0) | 2022.02.17 |
Kosta Day17 : 자료구조2 (JAVA) / Set, Map (0) | 2022.02.14 |
Kosta Day16 : 자료구조 (JAVA) (0) | 2022.02.11 |
Kosta Day14 : Interface (JAVA 인터페이스) (0) | 2022.02.09 |
GUI(화면구성)
1) awt : 그래픽이 운영체제에 있는 그래픽을 가져와서 사용하기 때문에 운영체제 영향을 받음.
운영체체에 따라 느낌이 다르다.
import java.awt.*;
ex) Frame ,Panel, Button, TextField, .....
2)swing : 자체적으로 Look and Feel을 가지고 있어서 내가 선택하는 그랙픽을 기반으로 GUI구성된다.
운영체체마다 동일한 느낌으로 화면구성이된다.
import javax.swing.*;
ex) JFrame ,JPanel, JButton, JTextField, .....
*용어정리
- Container : 창의 역할(반드시 한개이상의 Container가 필요하다)
ex) JFrame-메인창, JPanel - 서브창 , JDialog - 팝업창......
: Component들이 올려질 영역
JFrame위에 Component를 추가 : ~.add(Component con)
- Component : Container위에 올려져서 화면구성을 담당하게될 요소들....
ex) JButton, JTextField, JTextArea, JComboBox ,........
-LayoutManager : Container위에 component들이 올려질때 배치방법
ex) BorderLayout - JFrame, JDialog
FlowLayout - JPanel
GridLayout
CardLayout
GridBackLayout
--------------------------------------------------------------
* Event처리
: import java.awt.event.*;
: 사용자의 어떤 액션(행동)이 일어났을때 처리해야하는 기능!!!!
: 자바에서 액션에 해당하는 즉 사용자의 액션이 일어나면 호출되어지는 메소드들이 이미 정의되어 있다.(EventHandler)
- 추상화(interface)로 만들어져 있고 필요한 사람이 재정의(구체화) 시켜서 사용한다.
Event 관련 interface => XxxListener 있다.
단점) 모든메소드를 재정의 해야한다.!!(필요한 메소드는 단 한개라 하더라도 모두 재정의 필수)
Event관련된 interface를 미리 implements한 구현객체 들을 제공한다. ==> XxxAdapter 클래스 제공한다.- 메소드가 2개이상인겨우
단점) 결국은 상속은 한개밖에 할수없다!!!!
XxxAdapter를 사용하고 싶다면 결국 이벤트를 처리하는 클래스는 각각 만들어야한다.!!!
*이벤트를 처리하는 방법
ex) btn1 버튼을 클릭하면 "안녕" 이라고 출력하고 싶다.!!
1) 이벤트를 발생시키는 주체(Component)를 찾는다.
: JButton - > btn1
2) 1)에 찾은 주체가 발생할수 있는 이벤트종류를 찾는다. - XxxEvent
: ActionEvent
3) 2)에서 찾은 XxxEvent에 해당하는 XxxListener 또는 XxxAdapter를 선택하여 메소드를 재정의한다. - 코딩시작!!!!
: 원하는 기능을 만든다( "안녕" 출력한다)
4) 이벤트 등록
이벤트발생주체.addXxxxListener( ???? ); -> 인수로 전달되는 값은 3)을 만들어놓은 주체를 뜻함.
: ??? 자리에 들어갈수 있는 값은 3가지 형태
1) this
2) 외부객체생성한 변수
3) Annoymous inner 클래스
=======================================================
- Inner Class 형태
class A{
int a=10;
class B{ //클래스의 역할 할수 있어서 상속, 구현 모두 가능하다~~
//이너 클래스안에서는 outer클래스의 모든 메소드, 모든 필드를 접근할수 있다!!!!!
//단점은 inner클래스는 Outer클래스 내부에 존재하기 때문에 Outer클래스 없이는 사용할수 없다.
// B 클래스를 독립적으로 사용할수 없다. A클래스의 속성과 같은 것.
}
}
-컴파일을하면 클래스 생성
A.class
A$B.class -> outer클래스이름$inner클래스이름.class
* Inner클래스는 선언위치와 선언 방법 에 따라 3가지 형태가 존재한다.
1) 인스턴스 맴버클래스
class A{
class B{ }
}
2) 정적(static) 맴버클래스
class A{
static class B{ }
}
3) 로컬(메소드 내부에서 선언된) 클래스
class A{
public void aa(){
class B{ }
}
}
'Web > MSA Full-Stack 과정' 카테고리의 다른 글
Kosta Day20 : IO / Thread / Lambda / Enum (0) | 2022.02.17 |
---|---|
Kosta Day19 : Inner class / IO Stream (0) | 2022.02.17 |
Kosta Day17 : 자료구조2 (JAVA) / Set, Map (0) | 2022.02.14 |
Kosta Day16 : 자료구조 (JAVA) (0) | 2022.02.11 |
Kosta Day14 : Interface (JAVA 인터페이스) (0) | 2022.02.09 |