본문 바로가기

자바 DB 연동

자바에서 간단한 윈도우 프로그램 짜기


import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Color;

import java.awt.Component;

import java.awt.Frame;

import java.awt.Panel;

import java.awt.TextArea;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;


// ActionEvent : Button, MenuItem, TextField에서 엔터, List에서 항목을 더블클릭하면 발생하는 이벤트

public class Test5 extends Frame implements ActionListener {

private Button btn1, btn2;

private TextField tf;

private TextArea ta;

public Test5() {

setTitle("윈도우 프로그램....");

btn1=new Button("추가");

btn2=new Button("종료");

tf=new TextField(20);

ta=new TextArea();

//Frame에 컴포넌트 추가

//Frame은 기본적으로 동서남북중앙 5개의 컴포넌트를 배치하는 BorderLayout이 기본 Layout

/* add(btn1, BorderLayout.SOUTH);

add(btn2, BorderLayout.NORTH);

add(tf, BorderLayout.EAST);

add(ta, BorderLayout.WEST);

*/

add(ta, BorderLayout.CENTER);

//panel: 하나이상의 컴포넌트를 그룹화.

// 패널은 FlowLayout가 기본(일직선 배치)

Panel p=new Panel();

p.add(tf);

p.add(btn1);

p.add(btn2);

add(p,BorderLayout.SOUTH);

// btn1에 ActionEvent 등록

btn1.addActionListener(this);

// btn2에 ActionEvent 등록

btn2.addActionListener(this);

// tf에 ActionEvent 등록

tf.addActionListener(this);

// WindowAdapter : WindowListener 인터페이스 구현클래스

// 익명클래스

addWindowListener(new WindowAdapter() {


@Override

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

setBackground(new Color(10,200,200));

setSize(500,500);

setVisible(true);

}

public static void main(String[] args) {

new Test5();

}


@Override

public void actionPerformed(ActionEvent e) {

//ActionEvent를 처리하는 메소드

//이벤트를 발생시킨 객체

Component co=(Component)e.getSource();

if(co instanceof Button){

if(co==btn1){

String s=tf.getText();

ta.append(s+"\n");

tf.setText("");

tf.requestFocus();

}else if(co==btn2){

System.exit(0);

}

}else if(co instanceof TextField){

String s=tf.getText();

ta.append(s+"\n");

tf.setText("");

tf.requestFocus();

}

}

}