
Socket
๐ Note Code
Event(Frame) : ์ปฌ๋ฌ, ๋๋๊ทธ, ์ฐฝํฌ๊ธฐ ๋ฑ,,,
c์ธ์ด : MFC
JAVA : Frame (๋๋ ค์ ์๋ง๋ฆ)
์น : event programming
์๋์ฐ์ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋ค ๊ฐ์ง๊ณ ์๋ ์ฌ๋ class๋ฅผ (Frame) ์์
๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ณ (์ค์ค๋ก ์์ง์) ํ์ดํ, ๋ฒํผ ๋๋ฅด๊ณ , ํด๋ฆญํจ

Test1
๐ป ์ ๋ ฅ
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
// AWT
public class Test1 extends Frame implements WindowListener { //Listener ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๋ ๊ฐ์์
private static final long serialVersionUID = 1L; // = ๊ณต๊ฐ์ด ์์ฒญ ํผ
public Test1() { // heap์์ญ์ ์์ฑ์๋ฅผ ์ฝ๋ฉํด์ค
setTitle("์๋ฐ ์๋์ฐ");
setSize(200, 300); //์ฐฝ ํฌ๊ธฐ
setBackground(new Color(150, 200, 150));
addWindowListener(this); //cctv - ๋ ๊ฐ์ํด (listener) - ์ฐฝ๋ซ๋๊ฑฐ
setVisible(true); //์๋ ์๋ณด์ฌ์ฃผ๋๋ฐ true๋๊น ์ฐฝ ์ค์ ๋ก ๋ณด์ฌ์ค
//ํด๋น ์ฐฝ : frame
}
public static void main(String[] args) {
new Test1();// ์ฃผ์์ ์ฌ๋ฆดํ์ ์์ด , ๋ฉ๋ชจ๋ฆฌ์๋ง ์ฌ๋ผ๊ฐ๋ฉด(new) ๋
์์ ์ผ๋ก ์์์ ์์ง์
}
@Override
public void windowOpened(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) { //x๋ฒํผ ๋๋ ์๋ ์ข
๋ฃํ ๋?๋ผ๊ณ ๋ฌผ์ด๋ณด๋๊ฑฐ
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
}
[์ด๋ก์ ์ฐฝ(200, 300)์ด ๋ธ - ๋ซ๊ธฐ X๋ฒํผ ํ์ฑํ ์๋จ]
๐ Note Code

Test2
๐ป ์ ๋ ฅ
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test2 extends Frame {
private static final long serialVersionUID = 1L;
public Test2() {
setTitle("์๋์ฐ");
setSize(200, 300);
addWindowListener(new MyWindowAdapter()); // class MyWindowAdater extends WindowAdapter [์ด๊ฑธ ์ฌ์ฉํ๋ ค๋ฉด ํด๋์ค ์ด๋ฆ์ผ๋ก ์์์ ๊ฐ์ฒด
// ์์ฑ]
setVisible(true);
}
// inner class : ๋ฐ๊นฅ์์ ํธ์ถ๋ ์ํ๊ณ (- exit) ์ ํด๋์ค์ ์น๋ฐํ ๋ - ๋ด๋ถ์์ ๋ง๋ค์์ ๋ด๋ถ์์ ํด๊ฒฐํจ
// WindowAdapter : windowlister์ ์ฐ๊ฒฐ๋์ด์์ด์ ์์๋ฐ๊ฒ ๋๋ฉด ๊ณจ๋ผ๋จน์ ์ ์์
class MyWindowAdapter extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public static void main(String[] args) {
new Test2();
}
}
[ํ์์ ์ฐฝ(200, 300)์ด ๋ธ - ๋ซ๊ธฐ๋ฒํผ ํ์ฑํ]
๐ Note Code

Test3
๐ป ์ ๋ ฅ
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test3 extends Frame {
private static final long serialVersionUID = 1L;
public Test3() {
setTitle("์๋์ฐ");
setSize(200, 300);
addWindowListener(new WindowAdapter() {//๋ฌด๋ช
์ ํด๋์ค
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setVisible(true);
}
public static void main(String[] args) {
new Test3();
}
}
[ํ์์ ์ฐฝ(200, 300)์ด ๋ธ - ๋ซ๊ธฐ๋ฒํผ ํ์ฑํ]
๐ Note Code

Test4
๐ป ์ ๋ ฅ
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
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 Test4 extends Frame implements ActionListener{ //ActionListener : ๋ด๋ถ ๊ฐ์
private static final long serialVersionUID = 1L;
private Button btn; //Button : ํด๋์ค
private TextArea ta; //๋ฐ์ดํฐ ๋ณด์ด๋ ์ฐฝ
private TextField tf;//๋ฐ์ดํฐ ์
๋ ฅ
public Test4() {
//๊ฐ์ฒด์์ฑ
btn = new Button("์ถ๊ฐ");
ta = new TextArea();
tf = new TextField();
add(tf,BorderLayout.NORTH);
add(ta,BorderLayout.CENTER);
add(btn,BorderLayout.SOUTH);
setTitle("์๋์ฐ");
setSize(200, 300);
//๊ฐ์์นด๋ฉ๋ผ
tf.addActionListener(this);
btn.addActionListener(this);
addWindowListener(new WindowAdapter() { //WindowAdapter = frame์ ์ด๋ฒคํธ
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setVisible(true);
}
public static void main(String[] args) {
new Test4();
}
@Override
public void actionPerformed(ActionEvent evt) { //๋ชจ๋ ์ด๋ฒคํธ๋ฅผ if๋ฌธ์ผ๋ก ๊ด๋ฆฌ , evt= event
Object ob = evt.getSource(); // ๋ฒํผ or TextField / object๋ก ๋ฐ์์ผํ๊ณ (์ด๋ค ๋ฒํผ์ ๋๋ฅผ์ง ๋ชจ๋ฅด๋) = ์์ค๋ฐ์๋ด
if(ob instanceof Button || ob instanceof TextField) {
String str = tf.getText();
if(!str.equals("")) {
ta.append(str+"\r\n"); // append : ๋ฌธ์์ด ๋์ , \r ๋ฌธ์์ด ๋งจ์์ผ๋ก ์ด๋
}
tf.setText(""); // ๋ค์ ํ
์คํธ๋ฅผ ์ํด ์ง์์ฃผ๊ธฐ
tf.requestFocus(); // ์ปค์ ๊น๋นก๊น๋นก ํฌ์ปค์ค๊ฐ ์์นํด์ ํค๋ณด๋ ์
๋ ฅ์ ๊ธฐ๋ค๋ฆผ
}
}
}
[ํ์์ ์ฐฝ(200, 300)์ด ๋ธ - ๋ซ๊ธฐ๋ฒํผ ํ์ฑํ]
๐ Note Code

Test5
๐ป ์ ๋ ฅ
import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Test5 extends Frame implements ActionListener {
private static final long serialVersionUID = 1L;
private TextField[] tf = new TextField[4]; // ๋ฐฐ์ด
private Label result = new Label("", Label.LEFT); // ์ด์ - ๊ฒฐ๊ณผ๋ง ๋ํด์ ๋ฑ ํ์๋ง ํด์ฃผ๊ฒ๋ (ํ์ฌ - ์๋ฌด๊ฒ๋ ์์จ๋จ์, ์ผ์ชฝ๋ถํฐ ๊ธ์จ ์ธ๊ฑฐ์)
private Button btn1, btn2;
public Test5() {
String[] title = { "์ด๋ฆ", "๊ตญ์ด", "์์ด", "์ํ", "์ด์ " };
setTitle("์ฑ์ ์ฒ๋ฆฌ");
setLayout(null);// frame์ null๋ก ๊นจ๋ํ๊ฒ ์ง์ด ๋ค(์ด๊ธฐํ์์
ํ,) ์ขํ๋ก ์ ํ ๊ฑฐ๋ค
for (int i = 0; i < 5; i++) {
Label lbl = new Label();
lbl.setText(title[i]);
lbl.setBounds(10, (i + 1) * 30, 50, 20); // xy์ wh์ ์ฌ์ด ๊ผญ์ง์ ์ ์์น๋ฅผ ์๋ ค์ค
add(lbl);
if (i != 4) {
// TextField
tf[i] = new TextField();
tf[i].setBounds(80, (i + 1) * 30, 70, 20);
tf[i].addKeyListener(new keyHandler());
add(tf[i]);
} else {
// Label = 4์ผ๋
result.setBounds(80, (i + 1) * 30, 70, 20);
add(result);
}
}
// ๊ฒฐ๊ณผ button
btn1 = new Button("๊ฒฐ๊ณผ");
btn1.setBounds(180, 30, 60, 20);
add(btn1);
btn1.addActionListener(this);// ๊ฐ์์นด๋ฉ๋ผ
btn1.addKeyListener(new keyHandler());//ํค๋ณด๋์ ๊ฐ์์นด๋ฉ๋ผ
// ์ข
๋ฃ button
btn2 = new Button("์ข
๋ฃ");
btn2.setBounds(180, 60, 60, 20);
add(btn2);
btn2.addActionListener(this);// ๊ฐ์์นด๋ฉ๋ผ
// AWT = abstract windows toolkit -> version up!๋ผ์ [SWING]์ถ์ - ์ขํ์ ์ํฅX
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setSize(260, 180);
setResizable(false); // ์ฌ์ด์ฆ ๋ชป์ค์
setVisible(true);
}
public static void main(String[] args) {
new Test5();
}
private void execute() { //์ด์
int tot = 0;
try {
for (int i = 1; i <= 3; i++) { // 0์ ์ด๋ฆ
tot += Integer.parseInt(tf[i].getText()); //์ ์(๋ฌธ์์ด)๋ก ๋ฐ๊ฟ
}
result.setText(Integer.toString(tot));//Integer.toString : int ํํ๋ฅผ stringํ์
์ผ๋ก ๋ณํ
//result.setText(tot+""); //๋ฌธ์์ด๋ง๋ค๊ณ ์ถ์ผ๋ฉด ์ซ์+""ํด๋ผ
} catch (Exception e2) {
result.setText("์
๋ ฅ์ค๋ฅ!!");
}
}
@Override
public void actionPerformed(ActionEvent e) {
Object ob = e.getSource();// ์ด๋ฒคํธ๋ฅผ ob๋ก ๋ฐ์์
if (ob instanceof Button) { // ๊ทธ ob๊ฐ ๋ฒํผ์ด์ผ?
Button b = (Button) ob; // ob ๋ค์ด์บ์คํ
ํด์ b์ ๋ฃ์ด๋ผ - (Button): ์ค๋ธ์ ํธ
if (b == btn1) {
execute(); //์ด์ ๊ตฌํ๋ ๋ฉ์๋ - 2) ๋ง์ฐ์ค๋ก๋ ๊ฐ๋ฅ
} else if (b == btn2) {
System.exit(0);
}
}
} //actionPerform...end
class keyHandler extends KeyAdapter{ //ํค๋ณด๋์์ญ
@Override
public void keyPressed(KeyEvent e) {
Object ob = e.getSource(); // ์ด๋ฒคํธ ๋ฐ์๋
if (e.getKeyCode() != KeyEvent.VK_ENTER) {// VK_ENTER ์ํฐ ํค๊ฐ
return;
}
if (ob instanceof Button) {
execute(); //์ด์ ๊ตฌํ๋ ๋ฉ์๋ 1) (tab) ํค๋ณด๋๋ก๋ ๊ฐ๋ฅ
return;
}
if (ob instanceof TextField) { // ์ด๋ฆ ~ ์ํ๊น์ง 0123๊น์ง๋๊น
TextField t = (TextField)ob;
for (int i = 0; i < tf.length; i++) {
if (i != 3 && tf[i] == t) {
tf[i + 1].requestFocus(); // ๋ฐ๋ก ๋ค์ ์๋์นธ์ ํฌ์ปค์ค (์ปค์) ๊ฐ๋ค๋
return;//๋์ด์ ๋น๊ต ํ์ง๋ง
} else if (tf[3] == t) { // t : ๋ด๊ฐ ์น 0123์ค์ ์นธ
btn1.requestFocus();
return;//๋์ด์ ๋น๊ต ํ์ง๋ง
}
}
}
}
}
}
[์ด๋ฆ / ๊ตญ์ด / ์์ด /์ํ / ์ด์ / ๊ฒฐ๊ณผ๋ฒํผ / ์ข
๋ฃ๋ฒํผ ํ์ฑํ]