비전공개미 개발노트
Java 8일차 - GUI(채팅프로그램 꾸미기) 본문
반응형
SMALL
//Memo.java
package net.bit.day26;
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
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;
public class Memo extends Frame implements ActionListener {
//틀 JPanel, Panel, Dialog대화상자
Panel pan = new Panel();
Button bok = new Button(" send ");
Button bcancel = new Button(" reset ");
Button bexit = new Button(" exit ");
TextArea area = new TextArea(); //멀티라인 = 가로+세로
TextField message = new TextField(20);
public Memo() {
//Panel은 왼쪽에서 오른쪽 레이아웃 FlowLayout, Frame은 레이아웃이 동서남북센터 BoardLayout
pan.add(message);
pan.add(bok);
pan.add(bcancel);
pan.add(bexit);
area.setFont(new Font("궁서체",Font.BOLD, 20));
//this.add("East", new Label());
//this.add("West", new Label());
this.add("South", pan);
//this.add("North", new Label());
this.add("Center", area);
//현재클래스 Memo를 가르키는 키워드 this, 생성자에서 this생략가능함
this.setTitle("초간단 대화내용");
this.setBackground(Color.GREEN);
this.setBounds(100, 100, 400, 600);
this.setVisible(true); //기술안할시 화면안보임
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("윈도우창 종료를 익명의 클래스로 구현");
System.exit(1);
}
});
//this.addWindowListener(new MyExit()); //결과는 동일
message.addActionListener(this);
bok.addActionListener(this);
bcancel.addActionListener(this);
bexit.addActionListener(this);
} //기본생성자
public class MyExit extends WindowAdapter{
public void windowClosing(WindowEvent e) {
System.out.println("윈도우창 종료를 내부클래스로 구현");
System.exit(1);
}
}
//public Memo() {
//this.bok = new Button("데이터전송");
//this.bcancel = new Button("입력취소");
//}
public Memo(String kind) { } //매개인자가 있는 생성자
public static void main(String[] args) {
new Memo();
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == message) {
sendmessage();
}else if(ae.getSource() == bok) {
sendmessage(); //send버튼 클릭시 메세지전송
}else if(ae.getSource() == bcancel) {
area.setText(""); //reset버튼 클릭시 대화내용 전체삭제
}else if(ae.getSource() == bexit) {
System.out.println("프로그램을 종료합니다.");
System.exit(0); //exit버튼 클릭시 프로그램 종료
}else { }
}
public void sendmessage() {
area.append(message.getText() + "\n");
message.setText(""); //send로 메세지를 전송하면 글자입력창에 글자를 없앤다
}
}
send버튼 - TextArea에 append되고 message칸의 텍스트를 setText(" "); 비운다.
reset버튼 - TextArea의 내용을 setText(" "); 비운다.
exit버튼 - System.exit(0); 프로그램 종료
반응형
LIST
'프로그래밍 > Java' 카테고리의 다른 글
[Java/JSP] Servlet으로 doGet/doPost사용하기 (0) | 2022.10.31 |
---|---|
Java 9일차 - MySQL연동 (1) | 2022.09.28 |
Java 8일차 - java + MySQL연동 / INSERT/ SELECT (0) | 2022.09.28 |
Java 7일차 - [문제풀이]PrintWriter로 계산된 구구단 파일저장 (0) | 2022.09.28 |
Java 7일차 - Thread, interface, implements (0) | 2022.09.28 |
Comments