TextField
TextField는 한줄로 되어있는 입력컴포넌트이고
TextArea는 여러줄에 걸쳐 입력을 받을 수 있는 문자열 입력 컴포넌트이이다.
TextField txt1 = new TextFoeld( "ID" , 20 ); | txt1에 ID라는 글자가 써진상태로 나오고 20개의글을쓸공간이 생김 |
txt1.setEchoChar( ' * ' ) ; | txt1에 쓰는 글은 모두 * 로 보임 |
txt1. setFont ("폰트이름",기울임등 설정, 크기) | 폰트 설정 |
TextArea txt2 = new TextArea("내용".10,30 ) ; | 10행 30열의 글자를 담을 수 있는 공간 생성 / 내용은 생략가능 |
txt2.setText("문자열 입력") | TextArea에 넣고싶은 글 입력 |
package ja_0803;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
public class TextField_1 extends Frame {
public TextField_1(String title) {
super(title);
setLayout(new FlowLayout());
Label lbl1 = new Label("아이디 입력 : ");
Label lbl2 = new Label("비밀번호 입력 : ");
TextField txt1 = new TextField("ID", 20);
TextField txt2 = new TextField("korea", 20);
// korea는 txt2 컴포넌트 위에 찍힐 초기문자열, 20은 20개의문자를 입력 가능한 크기지정
txt2.setEchoChar('*'); // 보여주는 글자를 *로 바꾸겠다는 의미
add(lbl1);
add(txt1);
add(lbl2);
add(txt2);
setSize(200, 200);
setVisible(true);
}
public static void main(String[] args) {
new TextField_1("Text Test~");
}
}
- TextArea
package ja_0803;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
public class TextField_2 extends Frame {
public TextField_2(String title) {
super(title);
setLayout(new FlowLayout());
// 레이아웃을 주지 않으면 보더레이아웃으로 마지막으로 add해준 txt2만 보이게됨
TextArea txt1 = new TextArea(10, 30);// 10행 30열의 글자를 담을수 있는 공간 생성
TextField txt2 = new TextField("안녕하세요", 20);
txt1.setText("문자열 입력~~");
txt1.setBackground(new Color(250, 230, 100));
txt1.setForeground(new Color(90, 15, 156));
txt1.setFont(new Font("궁서체", Font.ITALIC | Font.BOLD, 17));
txt2.setEchoChar('#');
txt2.setForeground(new Color(11, 63, 200));
add(txt1);
add(txt2);
setSize(300, 330);
setVisible(true);
}
public static void main(String[] args) {
new TextField_2("Test");
}
}
package ja_0803;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
public class TextField_3 {
public static void main(String[] args) {
Frame ff = new Frame("Login");
ff.setSize(400, 80);
ff.setLayout(new FlowLayout());
Label lid = new Label("ID : ", Label.RIGHT);// 우측 정렬(값을안주면 기본은 좌측정렬)
Label lpwd = new Label("Password : ", Label.RIGHT);
TextField id = new TextField(10);
TextField pwd = new TextField(10);
pwd.setEchoChar('*');
lid.setBackground(new Color(116, 150, 245)); // 파랑
id.setBackground(new Color(246, 134, 246));// 분홍
ff.add(lid);
ff.add(id);
ff.add(lpwd);
ff.add(pwd);
ff.setVisible(true);
}
}
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("간단한 메모를 입력");
// 사이즈를 적지 않으면 폭(열)은 프레임 전체(처음지정해준크기)를 차지, 행은 10행 정도가 생성됨
TextArea txt2 = new TextArea(10, 20);// (행,열)
TextArea txt3 = new TextArea("문자열,문자열,,,", 5, 30);
add(txt1);
add(txt2);
add(txt3);
setSize(500, 300);
setVisible(true);
}
public static void main(String[] args) {
new TextField_4("테스트");
}
}
기본출력형태 | 몇행 몇열을 사용하는지 확인해봄 |
![]() |
![]() |
ScrollPane
스크롤펜은 하나의 자식 컴포넌트만을 가질수 있다. 따라서 스크롤팬에 여러개의 컴포넌트를 포함시키기 위해서는 패널을 스크롤팬에 붙이고 패널위에 컴포넌트를 붙이는 것이 좋다.
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);
Panel panel1 = new Panel();
panel1.setLayout(new BorderLayout());
TextArea txt = new TextArea("텍스트에리어111");
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);
panel1.add("North",new Button("버튼"));
panel1.add("Center",txt);
panel1.add("South",new Button("확인"));
panel2.add("North",new Button("버튼"));
panel2.add("Center",new TextArea("공간~")).setBackground(Color.pink);
panel2.add("South",new Button("확인"));
srp.add(panel1);
//srp.add(panel2);
//스크롤팬 위에는 하나만 add할 수 있다. 두개를 add하면 마지막에 add한에 적용되어 나온다.
add("Center",srp);
add(new Button("생성"));
setSize(200,200);
setVisible(true);
}
public static void main(String[] args) {
new ScrollPane_1("Test");
}
}
실행시 스크롤바가 생성됨 | 생성이라는 버튼을 만들어 주었을때 (스크롤팬에만 스크롤바가 생성된 모습을 볼 수 있다. ) |
![]() |
![]() |
package ja_0803;
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_2 {
public static void main(String[] args) {
Frame ff = new Frame("ScrollPane");
ff.setSize(300, 200);
ScrollPane spp = new ScrollPane();
Panel pp = new Panel();
pp.setBackground(new Color(255, 250, 50));
pp.add(new Button("첫번째"));
pp.add(new Button("두번째"));
pp.add(new Button("세번째"));
pp.add(new Button("네번째"));
pp.add(new TextArea(15, 30)).setBackground(new Color(0, 255, 255));
spp.add(pp);
ff.add(spp);
ff.setVisible(true);
}
}
크기보다 작다면 스크롤바가 자동으로 생긴다.
스크롤팬에는 하나만 붙일수 있다.
만약 여러개를 붙이면 마지막에 붙인 것만 나타난다.
그러므로패널에 여러개를 붙여서 그다음에
그 패널 하나를 스크롤펜에 붙이는 방식으로 해야함.
Font
package ja_0803;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
public class Font_1 extends Frame {
public static void main(String[] args) {
Frame ff = new Frame("Font Test");
String abc = "ABCDEFGHIJKLMNOPQRSTUV";
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);
//
// Font ff1 = new Font("Serif",Font.PLAIN,20);
// Font ff2 = new Font("Serif",Font.ITALIC,20);
// Font ff3 = new Font("Serif",Font.BOLD,20);
// Font ff4 = new Font("Serif",Font.BOLD+Font.ITALIC,20);
// Font ff5 = new Font("Serif",Font.BOLD|Font.ITALIC,35);
//
//
Font ff1 = new Font("Papyrus", Font.PLAIN, 20);
Font ff2 = new Font("Papyrus", Font.ITALIC, 20);
Font ff3 = new Font("Papyrus", Font.BOLD, 20);
Font ff4 = new Font("Papyrus", Font.BOLD + Font.ITALIC, 20);// + : 효과를 동시에 여러개
// ITALIC : 기울임 , BOLD :진하게
Font ff5 = new Font("Papyrus", 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.setSize(700, 350);
ff.setVisible(true);
}
}
package ja_0803;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
public class Font_2 {
public static void main(String[] args) {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = ge.getAllFonts();
for (int i = 0; i < fonts.length; i++) {
System.out.println(fonts[i].getFontName());
// 디바이스가 가진 모든 폰트이름 출력
}
}
}
Canvas
:글씨를 쓰거나 그림을 그릴때 사용
(생성하는 방법)
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("Canvas Test~");
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);
}
}
Menu
package ja_0803;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
public class Menu_1 extends Frame {
public Menu_1(String title) {
super(title);
MenuBar mb = new MenuBar();
Menu file = new Menu("파일");
MenuItem file_new = new MenuItem("새화일");
MenuItem file_open = new MenuItem("불러오기");
MenuItem file_close = new MenuItem("파일닫기");
file.add(file_new);
file.add(file_open);
file.add(file_close);
Menu edit = new Menu("편집");
MenuItem edit_cut = new MenuItem("오려두기");
MenuItem edit_paste = new MenuItem("붙이기");
edit.add(edit_cut);
edit.add(edit_paste);
mb.add(file);
mb.add(edit);
Menu search = new Menu("검색");
MenuItem search_look = new MenuItem("찾기");
MenuItem search_ch = new MenuItem("바꾸기");
search.add(search_look);
search.add(search_ch);
mb.add(search);
setMenuBar(mb); // 프레임에 붙음
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) {
new Menu_1("메뉴 만들기");
}
}
(예) - 메뉴안에 메뉴넣기
package ja_0803;
import java.awt.CheckboxMenuItem;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
public class Menu_2 extends Frame {
public Menu_2(String title) {
super(title);
MenuBar mb = new MenuBar();
Menu file = new Menu("파일");
CheckboxMenuItem file_new = new CheckboxMenuItem("새화일", true);// 체크가 되어나옴
CheckboxMenuItem file_open = new CheckboxMenuItem("불러오기");
MenuItem file_separator = new MenuItem("-"); // 언더바 _ 만 특수하게 사용가능
MenuItem file_close = new MenuItem("파일닫기");
file.add(file_new);
file.add(file_open);
file.add(file_separator);
file.add(file_close);
Menu edit = new Menu("편집");
MenuItem edit_cut = new MenuItem("오려두기");
MenuItem edit_paste = new MenuItem("붙이기");
edit.add(edit_cut);
edit.add(edit_paste);
file.add(edit);
mb.add(file);
setMenuBar(mb);
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) {
new Menu_2("메뉴만들기");
}
}
팝업메뉴
package ja_0803;
import java.awt.Frame;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.TextArea;
import java.awt.event.MouseListener;
import org.w3c.dom.events.EventTarget;
import org.w3c.dom.events.MouseEvent;
import org.w3c.dom.views.AbstractView;
public class PopupMenu_1 extends Frame implements MouseListener {
PopupMenu popup;
TextArea txt;
public PopupMenu_1(String title) {
super(title);
popup = new PopupMenu();
txt = new TextArea("Korea");
MenuItem cut = new MenuItem("오려두기");
MenuItem paste = new MenuItem("붙이기");
MenuItem copy = new MenuItem("복사하기");
// 팝업메뉴에 메뉴아이템 add
popup.add(cut);
popup.add(paste);
popup.add(copy);
txt.addMouseListener(this);
txt.add(popup);
add(txt);
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) {
new PopupMenu_1("popup menu test");
}
@Override
public void mouseClicked(java.awt.event.MouseEvent e) {
}
@Override
public void mousePressed(java.awt.event.MouseEvent e) {
// 누르기
popup.show(txt, e.getX(), e.getY());
// txt의 x,y좌표에서 popup을보여달라
System.out.println(" " + txt + " : " + e.getX() + ',' + e.getY());
// 프레임안에서 좌표값 확인하기
}
@Override
public void mouseReleased(java.awt.event.MouseEvent e) {
// 놓기
}
@Override
public void mouseEntered(java.awt.event.MouseEvent e) {
// 마우스가 화면안에 들어올때
}
@Override
public void mouseExited(java.awt.event.MouseEvent e) {
// 마우스가 화면안에서 나갈때
}
}
'KH > JAVA' 카테고리의 다른 글
# 42 Dialog (0) | 2022.08.04 |
---|---|
# 41 Layout (0) | 2022.08.03 |
# 39 AWT- Pane1,Button,CheckBox,Label,Frame,Choice (0) | 2022.08.01 |
#38 Search , Map (0) | 2022.07.29 |
# 37 Set - HashSet, TreeSet (0) | 2022.07.28 |