Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 도커
- rss
- 메일왕창보내는법
- 베트남어
- flex3
- 나의 프로젝트
- Cross
- php
- iBatis
- 디즈니씨
- Eclipse
- ajax
- docker
- 스킨 스쿠버
- 명사 분석기
- php thumbnail
- ror실행
- 주식이야기
- 나의 취미
- nodejs express
- 명사 추출기
- Lift
- node.js web framework
- 책이야기
- ejb
- 명사 뽑아내기
- scala
- express for node.js
- Node.js
- C/C++
Archives
- Today
- Total
nkdk의 세상
자바 Language 15일째 본문
// 기타 콤포넌트에 대해서 설명 하겠습니다.
package gui;
import java.awt.*;
import java.awt.event.*;
import java.util.*; // random 클래스를 쓰기 위해서 호출한다.
public class EtcComponent extends Frame implements ItemListener, ActionListener{ // 이건 아이템 리스너 이다.
private Checkbox rad1, rad2, rad3, chk1, chk2, chk3;
Choice cho;
Panel pn1, pn2;
Color c;
int sel=1; // 선인지 원인지 구분할 때 사용
Button btnOk;
public EtcComponent() {
pn1=new Panel();
// Radio버튼 만들기
CheckboxGroup group=new CheckboxGroup(); // awt에서는 라디오 버튼 같은 것을 그룹화 시켜주어야 한다.
rad1=new Checkbox("선", group,true);
rad2=new Checkbox("원", group,false);
rad3=new Checkbox("네모", group,false);
rad1.addItemListener(this);
rad2.addItemListener(this);
rad3.addItemListener(this);
pn1.add(rad1);
pn1.add(rad2);
pn1.add(rad3);
// Choice 버튼으로 고르는 것을 선택할때 사용 한다.
cho =new Choice();
cho.addItem("검정");
cho.addItem("노랑");
cho.addItem("파랑");
cho.addItem("빨강");
cho.addItemListener(this);
pn1.add(new Label("색상선택"),Label.RIGHT);
pn1.add(cho);
// CheckBox를 구경합니다.
pn2 = new Panel();
chk1=new Checkbox("한국",true);
chk2=new Checkbox("일본",false);
chk3=new Checkbox("미국",false);
btnOk=new Button("확인");
btnOk.addActionListener(this);
pn2.add(new Label("살고 싶은 나라 :"));
pn2.add(chk1);
pn2.add(chk2);
pn2.add(chk3);
pn2.add(btnOk);
// this.add("North",pn1); 이렇게 주는 방법도 있다.
this.add(pn1,BorderLayout.NORTH);
this.add(pn2,BorderLayout.SOUTH);
//this.add(pn1,BorderLayout.NORTH); // 프레임 컴포넌트를 배치 할 때 이런 식으로 사용할 수 있다.
this.setBounds(200,100,400,300);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new EtcComponent();
}
public void itemStateChanged(ItemEvent e) {
if(e.getSource()==rad1) sel=1;
else if (e.getSource()==rad2) sel=2;
else if (e.getSource()==rad3) sel=3;
if(e.getItem().equals("검정")) c=Color.black;
else if (e.getItem().equals("파랑")) c=Color.blue;
else if (e.getItem().equals("노랑")) c=Color.yellow;
else if (e.getItem().equals("빨강")) c=Color.red;
repaint(); // 그리기 위해서 호출
}
public void paint(Graphics g) {
g.setColor(c); // 전역 변수 c에 대한 색을 가져와서 넣는다.
Random aa=new Random(); // int형을 리턴하기 때문에 쓸만 하다.
int x=aa.nextInt(100); // 1~100사이에 난수를 발생 시킨다.
int y=aa.nextInt(100); // 1~100사이에 난수를 발생 시킨다.
int w=aa.nextInt(300); // 1~300사이에 난수를 발생 시킨다.
int h=aa.nextInt(300); // 1~300사이에 난수를 발생 시킨다.
switch(sel) {
case 1: g.drawLine(x,y,w,h); // 선을 그린다.
break;
case 2: g.drawOval(x, y, w, h); // 원을 그린다.
break;
case 3: g.drawRect(x, y, w, h); // 네모를 그린다.
break;
}
}
public void actionPerformed(ActionEvent e) {
String ss="";
if(chk1.getState()==true) ss +=chk1.getLabel();
if(chk2.getState()==true) ss +=chk2.getLabel();
if(chk3.getState()==true) ss +=chk3.getLabel();
super.setTitle(ss);
}
}
// 키 테스트 함수
package gui;
import java.awt.*;
import java.awt.event.*;
public class KeyTest extends Frame{
Point start=new Point(100,100);
Point end=new Point(100,100);
public KeyTest() {
super("선그리기");
this.addKeyListener(new Kevent());
setBounds(100,100,300,300);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public class Kevent extends KeyAdapter{
public void keyPressed(KeyEvent e) {
int keycode=e.getKeyCode();
int d; // 이동량
if((e.getModifiers() & InputEvent.SHIFT_MASK) !=0)
d=10;
else d=1;
if(keycode==KeyEvent.VK_LEFT) add(-d,0);
else if(keycode==KeyEvent.VK_UP) add(0,-d);
else if(keycode==KeyEvent.VK_DOWN) add(0,d);
else if(keycode==KeyEvent.VK_RIGHT) add(d,0);
}
public void add(int dx, int dy) {
end.x += dx;
end.y += dy;
repaint();
}
}
public void update(Graphics g) {
paint(g);
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawLine(start.x, start.y, end.x, end.y);
start.x = end.x;
start.y = end.y;
}
public static void main(String[] args) {
new KeyTest();
}
}
// 이미지 테스트 함수
package gui;
import java.awt.*;
import java.awt.event.*;
public class ImageTest extends Frame implements ItemListener{
Image img;
boolean qzoom=false;
Checkbox chkzoom;
Choice cho;
int sel=1;
public ImageTest() {
Panel pn=new Panel();
Label lbl=new Label("그림을 선택하라");
cho=new Choice();
cho.addItem("그림1");
cho.addItem("그림2");
cho.addItem("그림3");
cho.addItemListener(this);
pn.add(lbl);
pn.add(cho);
this.add("North", pn);
Panel pn2=new Panel();
chkzoom=new Checkbox("화면 크기로 확대");
chkzoom.addItemListener(this);
pn2.add(chkzoom);
this.add("South", pn2);
this.setBounds(100,100,300,300);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new ImageTest();
}
public void itemStateChanged(ItemEvent e) {
}
public void paint(Graphics g) {
}
}
package gui;
import java.awt.*;
import java.awt.event.*;
import java.util.*; // random 클래스를 쓰기 위해서 호출한다.
public class EtcComponent extends Frame implements ItemListener, ActionListener{ // 이건 아이템 리스너 이다.
private Checkbox rad1, rad2, rad3, chk1, chk2, chk3;
Choice cho;
Panel pn1, pn2;
Color c;
int sel=1; // 선인지 원인지 구분할 때 사용
Button btnOk;
public EtcComponent() {
pn1=new Panel();
// Radio버튼 만들기
CheckboxGroup group=new CheckboxGroup(); // awt에서는 라디오 버튼 같은 것을 그룹화 시켜주어야 한다.
rad1=new Checkbox("선", group,true);
rad2=new Checkbox("원", group,false);
rad3=new Checkbox("네모", group,false);
rad1.addItemListener(this);
rad2.addItemListener(this);
rad3.addItemListener(this);
pn1.add(rad1);
pn1.add(rad2);
pn1.add(rad3);
// Choice 버튼으로 고르는 것을 선택할때 사용 한다.
cho =new Choice();
cho.addItem("검정");
cho.addItem("노랑");
cho.addItem("파랑");
cho.addItem("빨강");
cho.addItemListener(this);
pn1.add(new Label("색상선택"),Label.RIGHT);
pn1.add(cho);
// CheckBox를 구경합니다.
pn2 = new Panel();
chk1=new Checkbox("한국",true);
chk2=new Checkbox("일본",false);
chk3=new Checkbox("미국",false);
btnOk=new Button("확인");
btnOk.addActionListener(this);
pn2.add(new Label("살고 싶은 나라 :"));
pn2.add(chk1);
pn2.add(chk2);
pn2.add(chk3);
pn2.add(btnOk);
// this.add("North",pn1); 이렇게 주는 방법도 있다.
this.add(pn1,BorderLayout.NORTH);
this.add(pn2,BorderLayout.SOUTH);
//this.add(pn1,BorderLayout.NORTH); // 프레임 컴포넌트를 배치 할 때 이런 식으로 사용할 수 있다.
this.setBounds(200,100,400,300);
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new EtcComponent();
}
public void itemStateChanged(ItemEvent e) {
if(e.getSource()==rad1) sel=1;
else if (e.getSource()==rad2) sel=2;
else if (e.getSource()==rad3) sel=3;
if(e.getItem().equals("검정")) c=Color.black;
else if (e.getItem().equals("파랑")) c=Color.blue;
else if (e.getItem().equals("노랑")) c=Color.yellow;
else if (e.getItem().equals("빨강")) c=Color.red;
repaint(); // 그리기 위해서 호출
}
public void paint(Graphics g) {
g.setColor(c); // 전역 변수 c에 대한 색을 가져와서 넣는다.
Random aa=new Random(); // int형을 리턴하기 때문에 쓸만 하다.
int x=aa.nextInt(100); // 1~100사이에 난수를 발생 시킨다.
int y=aa.nextInt(100); // 1~100사이에 난수를 발생 시킨다.
int w=aa.nextInt(300); // 1~300사이에 난수를 발생 시킨다.
int h=aa.nextInt(300); // 1~300사이에 난수를 발생 시킨다.
switch(sel) {
case 1: g.drawLine(x,y,w,h); // 선을 그린다.
break;
case 2: g.drawOval(x, y, w, h); // 원을 그린다.
break;
case 3: g.drawRect(x, y, w, h); // 네모를 그린다.
break;
}
}
public void actionPerformed(ActionEvent e) {
String ss="";
if(chk1.getState()==true) ss +=chk1.getLabel();
if(chk2.getState()==true) ss +=chk2.getLabel();
if(chk3.getState()==true) ss +=chk3.getLabel();
super.setTitle(ss);
}
}
// 키 테스트 함수
package gui;
import java.awt.*;
import java.awt.event.*;
public class KeyTest extends Frame{
Point start=new Point(100,100);
Point end=new Point(100,100);
public KeyTest() {
super("선그리기");
this.addKeyListener(new Kevent());
setBounds(100,100,300,300);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public class Kevent extends KeyAdapter{
public void keyPressed(KeyEvent e) {
int keycode=e.getKeyCode();
int d; // 이동량
if((e.getModifiers() & InputEvent.SHIFT_MASK) !=0)
d=10;
else d=1;
if(keycode==KeyEvent.VK_LEFT) add(-d,0);
else if(keycode==KeyEvent.VK_UP) add(0,-d);
else if(keycode==KeyEvent.VK_DOWN) add(0,d);
else if(keycode==KeyEvent.VK_RIGHT) add(d,0);
}
public void add(int dx, int dy) {
end.x += dx;
end.y += dy;
repaint();
}
}
public void update(Graphics g) {
paint(g);
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawLine(start.x, start.y, end.x, end.y);
start.x = end.x;
start.y = end.y;
}
public static void main(String[] args) {
new KeyTest();
}
}
// 이미지 테스트 함수
package gui;
import java.awt.*;
import java.awt.event.*;
public class ImageTest extends Frame implements ItemListener{
Image img;
boolean qzoom=false;
Checkbox chkzoom;
Choice cho;
int sel=1;
public ImageTest() {
Panel pn=new Panel();
Label lbl=new Label("그림을 선택하라");
cho=new Choice();
cho.addItem("그림1");
cho.addItem("그림2");
cho.addItem("그림3");
cho.addItemListener(this);
pn.add(lbl);
pn.add(cho);
this.add("North", pn);
Panel pn2=new Panel();
chkzoom=new Checkbox("화면 크기로 확대");
chkzoom.addItemListener(this);
pn2.add(chkzoom);
this.add("South", pn2);
this.setBounds(100,100,300,300);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new ImageTest();
}
public void itemStateChanged(ItemEvent e) {
}
public void paint(Graphics g) {
}
}