23.01.18(Java)

MH S·2023년 1월 18일

Java

목록 보기
7/16

1. Api

package ch11;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DataEx1 {
	public static void main(String[] args) {
		Date d = new Date();
		System.out.println(d);
		//1970년 1월1일 초 1/1000
		System.out.println(System.currentTimeMillis());
		SimpleDateFormat sdf = 
				new SimpleDateFormat("yyyy년 MM월 dd일 hh시 mm분 ss초");
		String str = sdf.format(d);
		System.out.println(str);
	}
}

package ch11;

import java.util.Calendar;

public class CalendarEx1 {
	public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		System.out.print("오늘의 날짜는 ");
		System.out.print(cal.get(Calendar.YEAR) + "년");
		System.out.print(cal.get(Calendar.MONTH) + 1 + "월");
		// month는 0~10값 따라서 1을 더함.
		System.out.print(cal.get(Calendar.DATE) + "일");
		System.out.println();
		int hour = cal.get(Calendar.HOUR);
		int min = cal.get(Calendar.MINUTE);
		int sec = cal.get(Calendar.SECOND);
		int ampm = cal.get(Calendar.AM_PM);

		if (ampm == Calendar.AM)
			System.out.print("현재 시간은 AM ");
		else
			System.out.print("현재 시간은 PM ");
		System.out.println(hour + "시 " + min + "분 " + sec + "초");
	}
}

<날짜 관련 api 예시>

2. AWT


<프레임 리스트 예시>


<프레임 버튼 예시>
package awt;

import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class CheckboxEx1 extends MFrame 
implements ItemListener{
	
	Checkbox cb1, cb2, cb3;
	Checkbox rb1, rb2, rb3;
	CheckboxGroup grp;
	
	public CheckboxEx1() {
		super(220, 250);
		add(cb1 = new Checkbox("선택1", false));
		add(cb2 = new Checkbox("선택2", true));
		add(cb3 = new Checkbox("선택3", false));
		grp = new CheckboxGroup();
		add(rb1 = new Checkbox("라디오1", grp, true));
		add(rb2 = new Checkbox("라디오2", grp, true));
		add(rb3 = new Checkbox("라디오3", grp, true));
		cb1.addItemListener(this);
		cb2.addItemListener(this);
		cb3.addItemListener(this);
		rb1.addItemListener(this);
		rb2.addItemListener(this);
		rb3.addItemListener(this);
		setResizable(true);
		validate();
	}

	@Override
	public void itemStateChanged(ItemEvent e) {
		Checkbox cb = (Checkbox)e.getSource();
		String str = cb.getLabel() + " : " + cb.getState();
		setTitle(str);
	}
	
	public static void main(String[] args) {
		new CheckboxEx1();
	}

}

<체크박스 예시>
package awt;

import java.awt.Choice;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class ChoiceEx2 extends MFrame implements ItemListener {

	String sair[] = { "대한항공", "아시아나", "에어부산", "진에어" };
	String scity[] = { "서 울", "대 전", "대 구", "부 산", "제주도" };
	Choice air, city;

	public ChoiceEx2() {
		super(300, 300, new Color(100, 200, 100));
		air = new Choice();
		city = new Choice();

		for (int i = 0; i < sair.length; i++) {
			air.add(sair[i]);
		}
		for (int i = 0; i < scity.length; i++) {
			city.add(scity[i]);
		}

		add(air);
		add(city);
		air.addItemListener(this);
		city.addItemListener(this);
		add(new Label(" 항고사와 도시를 선택하세요"));
	}

	@Override
	public void itemStateChanged(ItemEvent e) {
		repaint();// 결과적으로 paint 호출
	}

	@Override
	public void paint(Graphics g/* 붓 */) {
		if (air == null || city == null)
			return;//메소드 중간에 return 은 이후에 코드의 무력화(코드 실행 안됨)
		g.setColor(Color.BLUE);
		String str = "항공사 선택 : " + air.getSelectedItem();
		g.drawString(str, 30, 120);
		g.setColor(Color.RED);
		str = "항공사 선택 : " + city.getSelectedItem();
		g.drawString(str, 30, 150);
	}

	public static void main(String[] args) {
		new ChoiceEx2();
	}
}

<초이스 기능을 활용한 예시>
package awt;

import java.awt.Choice;
import java.awt.Graphics;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class ChoiceEx3 extends MFrame implements ItemListener {
	Choice name, star;
	String ms[] = { "현 빈", "원 빈", "이민호", "김수현", "김우빈", "이종석" };
	String fs[] = { "고아라", "이연희", "이하늬", "문채원", "수 지", "김연아" };

	public ChoiceEx3() {
		name = new Choice();
		name.add("남자연예인");
		name.add("여자연예인");
		star = new Choice();
		for (int i = 0; i < ms.length; i++) {
			star.add(ms[i]);
		}
		add(name);
		add(star);
		name.addItemListener(this);
		//name.addItemListener(this);
	}

	public void inputItem(Choice c, String item[]) {
		c.removeAll();//star에 저장된 아이템 삭제
		for (int i = 0; i < item.length; i++) {
			c.add(item[i]);
		}
	}
	
	@Override
	public void itemStateChanged(ItemEvent e) {
		if(name.getSelectedItem().equals("남자연예인")) 
			inputItem(star,ms);	
		else if(name.getSelectedItem().equals("여자연예인")) 
			inputItem(star,fs);	
	}

	public static void main(String[] args) {
		new ChoiceEx3();
	}
}

<남자 여자 선택 예시>

<리스트 예시>
package awt;

import java.awt.Canvas;

public class CanvasEx1 extends MFrame {
	Canvas c;
	
	public CanvasEx1() {
		c= new Canvas();
		c.setSize(100,100);
		c.setBackground(MColor.rColor());
		add(c);
	}
	
	public static void main(String[] args) {
		new CanvasEx1();
	}
}

<컨버스 예시>
package awt;

import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextEx1 extends MFrame
implements ActionListener{
	TextField tf1, tf2;
	TextArea ta;
	
	public TextEx1() {
		super(250,300);
		add(new Label("성명"));
		add(tf1 = new TextField("홍길동", 20));
		add(new Label("비번"));
		add(tf2 = new TextField("", 20));
		tf2.setEchoChar('*');
		add(ta = new TextArea(10, 30));
		ta.setEditable(false);
		tf2.addActionListener(this);
		validate();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		ta.append(tf1.getText()+" / "+tf2.getText());
		tf1.setText("");
		tf2.setText("");
		tf1.requestFocus();
	}
	
	public static void main(String[] args) {
		new TextEx1();
	}
}

<이름, 비밀번호 Editable에 넣는 예시>
package awt;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextEx2 extends MFrame implements ActionListener{
	TextField tf;
	TextArea ta;
	Button btn;
	public TextEx2() {
		super(260, 300);
		setTitle("MyChart v1.0");
		setLayout(new BorderLayout());
		add(ta = new TextArea(), "Center");
		Color c[] = MColor.rColor2();
		ta.setBackground(c[0]);
		ta.setForeground(c[1]);
		ta.setEditable(false);
		//그룹 컨테이너
		Panel p = new Panel();
		p.add(tf = new TextField(22));
		p.add(btn = new Button("SEND"));
		tf.addActionListener(this);// Enter 이벤트
		btn.addActionListener(this);// 클릭 이벤트	
		add(p, "South");	
		validate();
		tf.requestFocus();//텍스트 필드에 강제로 커서 올려주는 메소드
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		String str = tf.getText().trim();
		if(str.length()==0)
			str= "입력을하세요";
		ta.append(str+"\n");
		tf.setText("");
		tf.requestFocus();
	}
	
	public static void main(String[] args) {
		new TextEx2();
	}
}

<채팅 대화 상자 예시>
package awt;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Label;
import java.awt.Panel;

public class PanelEx1 extends MFrame {
	Label label[] = new Label[3];
	Button btn[] = new Button[3];
	String str1[] = { "첫번째", "두번째", "세번째" };
	String str2[] = { "Start", "Stop", "End" };

	public PanelEx1() {
		setLayout(new BorderLayout());
		Panel p1, p2;
		p1 = new Panel();
		p1.setBackground(MColor.rColor());
		for (int i = 0; i < label.length; i++) {
			p1.add(label[i] = new Label(str1[i], Label.CENTER));
			label[i].setBackground(MColor.rColor());
		}
		p2 = new Panel();
		p2.setBackground(MColor.rColor());
		for (int i = 0; i < btn.length; i++) {
			p2.add(btn[i] = new Button(str2[i]));
			btn[i].setBackground(MColor.rColor());
		}
		add(p1, BorderLayout.NORTH);
		add(p2, BorderLayout.SOUTH);
	}

	public static void main(String[] args) {
		new PanelEx1();
	}
}

<패널에 라벨 및 버튼 넣기 예시>
package awt;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class DialogEx1 extends MFrame implements ActionListener{
	Button btn;
	String title = "메세지 대화상자";
	
	public DialogEx1() {
		super(300, 300);
		setLayout(new BorderLayout());
		add(btn = new Button("보이기"),BorderLayout.SOUTH);
		setResizable(true);
		btn.addActionListener(this);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		//System.out.println(getWidth());
		//System.out.println(getHeight());
		//System.out.println(getX());
		//System.out.println(getY());
		MyDialog md = new MyDialog(this, title, true);
		//현재 frame의 좌표
		int fx= getX();
		int fy =getY();
		//dialog 창크기
		int width = 100;
		int height = 150;
		int x= fx+getWidth()/2-width/2;
		int y= fy+getHeight()/2-height/2;
		
		md.setBounds(x,y,width,height);
		md.setVisible(true);
	}
	//내부클래스 : 외부클래스와 아주 밀접한 관계가 있는 클래스
	class MyDialog extends Dialog implements ActionListener{
		Button b;
		
		public MyDialog(Frame owner, String title, boolean modal) {
			super(owner, title ,modal);
			setLayout(new FlowLayout());
			b= new Button("확인");
			b.addActionListener(this);
			add(b);
		}

		@Override
		public void actionPerformed(ActionEvent e) {
		}
	}

	public static void main(String[] args) {
		new DialogEx1();
	}
}

<Dialog 및 프레임 중앙 정렬 예시>

0개의 댓글