티스토리 뷰
25일차인 오늘은 Java AWT를 이용해서 Frame을 만들어봤다.
. AWT의 주요 컴포넌트
1) Frame
- titlebar와 최소화, 최대화, 닫기 버튼을 가진 윈도우(컨테이너)
- 생성자: Frame(String title)
ex) Frame f = new Frame("Hi") // Hi 프레임 생성
- setSize(int, int): 사이즈 설정
- setLayout(new 레이아웃명()): 레이아웃 설정
- setVisible(true): 프레임 시각화
- 프레임참조변수.add(컴포넌트 참조변수): 컨테이너에 컴포넌트 추가
2) Button
- 사용자가 클릭했을 때 작업이 수행되도록 하는 컴포넌트
- 생성자: Button(String label)
- setLocation(int, int): 위치 설정
package ja_0801;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
public class Button_2 extends Frame {
Label lbl1, lbl2, lbl3;
Button btn1, btn2, btn3;
public Button_2(String str) {
super(str);
setLayout(new FlowLayout());
lbl1 = new Label("가위");
lbl2 = new Label("바위");
lbl3 = new Label("보");
btn1 = new Button("가위");
btn2 = new Button("바위");
btn3 = new Button("보");
add(lbl1); add(btn1);
add(lbl2); add(btn2);
add(lbl3); add(btn3);
lbl1.setEnabled(false);
btn3.setEnabled(false);
btn2.setBackground(new Color(255, 0, 0));
btn2.setForeground(new Color(0, 255, 0));
setSize(300, 200);
setLocation(300, 300);
setVisible(true);
}
public static void main(String[] args) {
new Button_2("버튼과 레이블");
}
}
/*
. 버튼(Button)
: 버튼은 가장 많이 사용되는 GUI 컴포넌트이고, 주로 사용자의 입력을 받을 때 사용합니다. 사용자가 어떤 결정을 내릴때 사용하는 컴포넌트 입니다.
생성자
public button() : 기본 생성자
public button(String label) : 문자열이 지정된 생성자
중요 메소드
public String getLabel() : 버튼위에 있는 문자열 반환
public void setLabel(String label) : 버튼위에 문자열 지정
public void addActionListener(ActionListener al) : 버튼에서 발생한 ActionEvent를 처리할 수 있도록 등록
public String getActionCommand(): 버튼에서 이벤트가 발생하면 Command(명령) 이름을 받아 옵니다.
public void setActionCommand(String cmd) : 버튼에 Command 이름을 설정
*/
3) Choice(Combo Box)
- 여러 아이템 중 하나를 선택할 수 있게 만드는 콤보박스 컴퍼넌트
- 생성자: Choice()
- 초이스참조변수.add("속성"): 목록에 값 추가
4) List
- 리스트 컴포넌트
- 생성자: List(int rows, boolean multipleMode) // 나타낼 줄의 수, 다중선택 가능 여부
* List(int row)로 생성시 단일선택
- 리스트참조변수.add("속성"): 목록에 값 추가
5) Label
- 텍스트를 표시하는 컴포넌트
- 생성자: Label(String text, int alignment) // 텍스트, 정렬방식(정렬방식 미선택 가능)
- 라벨참조변수.setBounds(int, int, int, int) // 가로위치, 세로위치, 가로크기, 세로크기
6) Checkbox
- 선택여부를 표현하는 컴포넌트
- 생성자: Checkbox(String text, boolean state) // 텍스트, 생성시 체크 여부(미선택 가능)
- Checkboxgroup으로 생성시 그룹 내 체크박스 중 하나만 선택 가능
- 생성자: Checkboxgroup(String text, CheckboxGroup group, boolean state) // Checkbox 생성자에서 그룹명 추가됨
7) TextField
- 사용자로부터 데이터를 입력받을 수 있는 컴포넌트
- 한 줄만 입력 가능
- 생성자: TextField(String text, int col) // 보여질 텍스트, 입력받을 글자 수(크기)
8) TextArea
- 여러 줄의 텍스트를 입력하거나 보여줄 수 있는 입력가능한 컴포넌트
- 생성자: TextArea(String text, int row, int col, int scrollbar) // 보여질 텍스트, 행, 열, 스크롤바 사용 여부(행렬만 선택 가능)
- TextArea참조변수.selectAll(): 텍스트 전체 선택
package ja_0803;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
public class TextField_4 extends Frame{
public TextField_4(String title) {
super(title);
setLayout(new FlowLayout());
TextArea txt1 = new TextArea("간단한 메모를 입력");
TextArea txt2 = new TextArea(10, 20);
TextArea txt3 = new TextArea("문자열,문자열,,,", 5, 30);
add(txt1);
add(txt2);
add(txt3)
setSize(500, 500);
setVisible(true);
}
public static void main(String[] args) {
new TextField_4("집에가고싶당");
}
}
9) Scrollbar
- 정해진 범위 내에서 값 조절이 가능한 컴포넌트
- 생성자: Scrollbar(int orientation, int value, int visible, int min, int max) // 스크롤바 종류, 초기값, 스크롤버튼 크기, 최소값, 최대값
package ja_0802;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Scrollbar;
public class ScrollBar_1 extends Frame{
public ScrollBar_1(String title) {
super(title);
Scrollbar srb1 = new Scrollbar(Scrollbar.VERTICAL, 10, 100, 0, 255);
Scrollbar srb2 = new Scrollbar(Scrollbar.VERTICAL, 100, 50, 0, 255);
add("West", srb1);
add("Cneter", new Label("스크롤바 테스트~~~"));
add("South", srb2);
setSize(200, 200);
setVisible(true);
}
public static void main(String[] args) {
new ScrollBar_1("ScrollBar Test~~~~");
}
}
10) Canvas
- 그림을 그리거나 이미지를 위한 공간으로 사용되는 컴포넌트
- 생성자: Canvas(GraphicsConfiguration config) // 대상 객체 지정(미선택 가능)
- 캔버스참조변수.setBackground(Color.색) // 캔버스 배경색 변경
- 캔버스참조변수.setBounds(int, int, int, int) // 가로위치, 세로위치, 가로크기, 세로크기
package ja_0803;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Frame;
public class Canvas_1 {
public static void main(String[] args) {
Frame ff = new Frame("CanvasTest~~~");
ff.setSize(300, 300);
ff.setLayout(null);
Canvas cc11 = new Canvas();
cc11.setBackground(Color.pink);
cc11.setBounds(100, 100, 150, 100);
Canvas cc22 = new Canvas();
cc22.setBackground(Color.blue);
cc22.setBounds(100, 210, 150, 100);
ff.add(cc11);
ff.add(cc22);
ff.setVisible(true);
}
}
11) Panel
- 빈 평면 공간만 가진 종속적 컨테이너
- Panel 안에 Panel을 삽입 가능(컴포넌트의 다양한 배치에 유용)
- 생성자: Panel(LayoutManager layout) // 레이아웃(미선택 가능)
- setSize, setLocation, setBackground 사용
package ja_0803;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
public class Panel_3 extends Frame{
Panel n, w, e, c, s;
public Panel_3(String title) {
super(title);
n = new Panel();
w = new Panel();
e = new Panel();
s = new Panel();
c = new Panel();
n.setBackground(new Color(255, 0, 0));
w.setBackground(new Color(0, 255, 0));
e.setBackground(new Color(0, 0, 255));
s.setBackground(new Color(115, 155, 0));
c.setBackground(new Color(152, 66, 24));
n.add(new Button("패널 1"));
w.add(new Button("패널 2"));
e.add(new Button("패널 3"));
s.add(new Button("패널 4"));
c.add(new Button("패널 5"));
add("North", n);
add("West", w);
add("East", e);
add("Center", c);
add("South", s);
setSize(500, 500);
setVisible(true);
}
public static void main(String[] args) {
Panel_3 p_3 = new Panel_3("Panel Test~~~");
}
}
12) ScrollPane
- 화면이 작아지면 나타나는 스크롤 바(제한된 공간에서 큰 컴포넌트를 보여줄 때 사용)
- 단 하나의 컴포넌트만 포함 가능한 종속적 컨테이너
- 생성자: ScrollPane(int scrollbarDisplayPolicy) // 스크롤바 표시 여부(미선택 가능)
package ja_0803;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.ScrollPane;
import java.awt.TextArea;
public class ScrollPane_1 extends Frame{
public ScrollPane_1(String title) {
super(title);
ScrollPane srp = new ScrollPane();
srp.setSize(220, 200);
// ScrollPane(스코롤펜);
// : 스크롤펜은 하나의 자식 컴포넌트만을 가질 수 있습니다.
// 따라서 스크롤팬에 여러개의 컴포넌트를 포함시키기 위해서는 패널을 스크롤팬에 붙히고, 패널 위에 컴포넌트를 붙이는 것이 좋습니다.
Panel panel = new Panel();
panel.setLayout(new BorderLayout());
TextArea txt = new TextArea("텍스트에어리어");
txt.setBackground(Color.green);
txt.setForeground(Color.red);
Panel panel2 = new Panel();
panel2.setLayout(new BorderLayout());
TextArea txt2 = new TextArea("텍스트에어리어222");
txt2.setBackground(Color.blue);
txt2.setForeground(Color.cyan);
panel.add("North", new Button("버튼"));
panel.add("Center", txt);
panel.add("South", new Button("확인"));
panel2.add("North", new Button("버튼"));
panel2.add("Center", new TextArea("삼번째방법")).setBackground(Color.gray);;
panel2.add("South", new Button("확인"));
// srp.add(panel2);
srp.add(panel);
add("Center", srp);
setSize(200, 200);
setVisible(true);
}
public static void main(String[] args) {
new ScrollPane_1("scrollpane");
}
}
13) Dialog
- Frame과 같은 독립적 컨테이너, 닫기버튼을 가지고 있음(알림창, 입력 받을 때 사용)
- 생성자: Dialog(Frame parent, String title, Boolean modal) // 부모 프레임 지정, 타이틀 명, 필수 응답 여부 지정
- setSize, setLocation, setBackground, setLayout 사용
14) FileDialog
- 파일을 열거나 저장할때 사용하는 Dialog
- 생성자: FileDialog(Frame parent, String title, int mode) // 부모 프레임 지정, 타이틀명, Save or Load 지정
- setFile, setDirectory, getFile, getDirectory 사용
15) Font
- Component 클래스의 setFont(Font f)를 사용해서 폰트 변경
- 생성자: Font(String name, int style, int size) // 폰트명, 폰트 스타일(볼드 이탤릭 등), 크기
ex) Font f = new Font("Serif", Font.BOLD, 20)
컴포넌트참조변수명.setFont(f) <- f에 저장된 폰트 적용 가능
package ja_0803;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
public class Font_1 {
public static void main(String[] args) {
Frame ff = new Frame("Font Test");
String abc = "ABCDEFGHIJKLNMOPQRSTUVWXYZ";
Label abc1 = new Label(abc);
Label abc2 = new Label(abc);
Label abc3 = new Label(abc);
Label abc4 = new Label(abc);
Label abc5 = new Label(abc);
Label abc6 = new Label(abc);
Font ff1 = new Font("Osaka", Font.PLAIN, 20);
Font ff2 = new Font("Osaka", Font.ITALIC, 20);
Font ff3 = new Font("Osaka", Font.BOLD, 20);
Font ff4 = new Font("Osaka", Font.BOLD + Font.ITALIC, 20);
Font ff5 = new Font("Osaka", Font.BOLD | Font.ITALIC, 35);
abc1.setFont(ff1);
abc2.setFont(ff2);
abc3.setFont(ff3);
abc4.setFont(ff4);
abc5.setFont(ff5);
ff.setLayout(new FlowLayout());
ff.add(abc1);
ff.add(abc2);
ff.add(abc3);
ff.add(abc4);
ff.add(abc5);
ff.add(abc6);
ff.setSize(700, 350);
ff.setVisible(true);
}
}
16) Color
- 색 표현에 사용되는 클래스(미리 정의된 색 혹은 RGB값 사용 가능)
- 생성자: Color(int r, int r, int g, int b) // 불투명도, 0~255 사이의 rgb값, float으로도 가능
*기본적인 색은 Color.컬러명으로 사용
'back > Java' 카테고리의 다른 글
KH 27일차(AWT ActionEvent) (0) | 2022.08.06 |
---|---|
KH 26일차(CardLayout, GridLayout) (0) | 2022.08.04 |
KH24일차(네트워크 시험) (0) | 2022.08.02 |
KH 23일차(AWT) (0) | 2022.08.01 |
KH 22일차(HashMap, TreeSet) (0) | 2022.07.30 |