KEMBAR78
Applet 2 container and action_listener | PDF
ssc




Container & ActionListener
                             1
Container                            ssc




ให้นักศึกษาสร้าง class แบบ Applet
ชื่อว่า ConApplet

http://202.44.47.108/~ssc/ConApplet.html

                                           2
ssc




import java.awt.*;
import javax.swing.*;

public class ConApplet extends JApplet{
	
 public void paint(Graphics g){
	
 }
}



                                                3
Container              ssc




ให้แสดงชื่อ คุณออกมา



                             4
ssc




  import java.awt.*;
import javax.swing.*;

public class ConApplet extends JApplet{
	
 public void paint(Graphics g){
	
 	
 g.drawString("Supaporn Simcharoen",20,450);
	
 }
}


                                                    5
Container                   ssc




ให้สร้าง Container ขึ้นมา




                                  6
ssc


import java.awt.*;
import javax.swing.*;

public class ConApplet extends JApplet{
	
 public void paint(Graphics g){
	
 	
 g.drawString("Supaporn Simcharoen",20,450);
	
 }
	
   public void init(){
	
   	
 Container c = getContentPane();
	
   	
 c.setLayout( new FlowLayout());
	
   }
}


                                                          7
Container                      ssc




สร้าง JLabel ขึ้นมา 1 JLabel
ใช้ข้อความคําว่า “Show Number”



                                     8
import java.awt.*;
import javax.swing.*;
                                                     ssc

public class ConApplet extends JApplet{
    private JLabel sNumLabel;
	
 public void paint(Graphics g){
!      super.paint(g);
       g.drawString("Supaporn Simcharoen",20,450);
	
 }
	
 public void init(){
	
 	
 Container c = getContentPane();
	
 	
 c.setLayout( new FlowLayout());
	
 	
 sNumLabel = new JLabel("Show Label");
	
 	
 c.add(sNumLabel);
	
 }
}
                                                           9
import java.awt.*;
import javax.swing.*;
                                                      ssc

public class ConApplet extends JApplet{    ประกาศตัวแปร
    private JLabel sNumLabel;                 JLabel
	
 public void paint(Graphics g){
!      super.paint(g);
       g.drawString("Supaporn Simcharoen",20,450);
	
 }
	
 public void init(){                      สร้างมันขึ้นมา
	
 	
 Container c = getContentPane();
	
 	
 c.setLayout( new FlowLayout());
	
 	
 sNumLabel = new JLabel("Show Label");
	
 	
 c.add(sNumLabel);
	
 }
}           ใส่มันเข้าไปที่ Container
                                                             10
Container                       ssc




สร้าง JTextField ขึ้นมา 1 อัน




                                      11
import java.awt.*;
import javax.swing.*;
                                                    ssc
public class ConApplet extends JApplet{
 private JLabel sNumLabel;
	
 private JTextField numField;
	
 public void paint(Graphics g){
! super.paint(g);
      g.drawString("Supaporn Simcharoen",20,450);
	
 }
	
 public void init(){
	
 	
 Container c = getContentPane();
	
 	
 c.setLayout( new FlowLayout());
	
 	
 sNumLabel = new JLabel("Show Label");
	
 	
 c.add(sNumLabel);
	
 	
 numField = new JTextField(5);
	
 	
 c.add(numField);
	
 }
}
                                                          12
import java.awt.*;
import javax.swing.*;
                                                  ssc

public class ConApplet extends JApplet{
 private JLabel sNumLabel;
                                          ประกาศตัวแปร
	
 private JTextField numField;             JTextField
	
 public void paint(Graphics g){
! ...
	
 }
	
 public void init(){
	
 	
 Container c = getContentPane();
	
 	
 c.setLayout( new FlowLayout());   สร้างมันขึ้นมา
	
 	
 sNumLabel = new JLabel("Show Label");
	
 	
 c.add(sNumLabel);
	
 	
 numField = new JTextField(5);
	
 	
 c.add(numField);
	
 }
}             ใส่มันเข้าไปที่ Container
                                                         13
Container                        ssc




สร้าง JButton ขึ้นมา 4 ปุ่่ม โดยให้
เป็นปุ่ม 1 , 2, +, =, และ C



                                       14
import java.awt.*;
                                              ประกาศ ssc


import javax.swing.*;                     ตัวแปร JButton
public class ConApplet extends JApplet{       ทั้งหมด
 private JLabel sNumLabel;
 private JTextField numField;
	
   private JButton btnOne,btnTwo;           : ปุ่ม 1, 2
	
   private JButton btnAdd;                  : ปุ่ม +
	
   private JButton btnAnswer;               : ปุ่ม =
	
   private JButton btnClear;                : ปุ่ม C
     ...


                                                            15
...
	
 	
 numField = new JTextField(10);
                                                ssc
	
 	
 c.add(numField);
	
   	
   btnOne = new JButton(" 1 ");
	
   	
   c.add(btnOne);                     สร้าง
	
   	
   btnTwo = new JButton(" 2 ");      พวกมัน
	
   	
   c.add(btnTwo);	
	
 	
 	
	
   	
   btnAdd = new JButton(" + ");       ขึ้นมา
	
   	
   c.add(btnAdd);	
	
   	
   btnAnswer = new JButton(" = ");
	
   	
   c.add(btnAnswer);	
	
   	
   btnClear = new JButton(" C ");
	
   	
   c.add(btnClear);	
 	
	
 }
}
                                                      16
Container                       ssc




เมื่อคลิกที่ ปุ่ม 1
ให้เลข 1 ไปแสดงที่ JTextField



                                      17
import java.awt.*;
                               import packet
                                                           ssc
import javax.swing.*;
import java.awt.event.*;
public class ConApplet extends JApplet   implements ActionListener
{
    ...                              implements class
	
 public void init(){
       ...
	
 }
	
 public void actionPerformed(ActionEvent event){

	
 }                  สร้าง method เพื่อรองรับการกระทํา
}

                                                                     18
import java.awt.*;
import javax.swing.*;                                  ssc
import java.awt.event.*;

public class ConApplet extends JApplet implements ActionListener
{
   ...
	
 public void init(){  เพิ่มการรองรับการกระทําที่ปุ่ม 1
       ...
	
 	
 btnOne = new JButton(" 1 ");
	
 	
 btnOne.addActionListener(this);
	
 	
 c.add(btnOne);
	
 }
	
 public void actionPerformed(ActionEvent event){

	
 }
}

                                                                   19
import java.awt.*;                                     ssc
import javax.swing.*;
                เพิ่มในส่วนของ
import java.awt.event.*;

     การ check การกระทําเมื่อกดปุ่ม 1
public class ConApplet extends JApplet implements ActionListener
{
     ...
	
   public void actionPerformed(ActionEvent event){
	
   	
 if (event.getSource() == btnOne){
	
   	
 	
 numField.setText("1");
	
   	
 }
	
   	
 repaint();
	
   }                setText เอาไว้ใช้สําหรับใส่ค่าให้
}
                     กลับ textField ซึ่งจะต้องเป็น String
                                                                   20
Container                       ssc




เมื่อคลิกที่ ปุ่ม 1 อีกครั้ง
ให้เลข 1 ไปแสดงที่ JTextField
ต่อจากเลข 1 ตัวก่อนหน้านี้ได้


                                      21
Container                            ssc




คําใบ:
     ้
วิธีในการดึงข้อมูลใน textField ใช้
numField.getText();
ดึงออกมาแล้วจะได้เป็น String
วิธีในการต่อ String ใช้เครื่องหมาย +
                                           22
ssc
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class ConApplet extends JApplet implements ActionListener
{
    ...
	
 public void actionPerformed(ActionEvent event){
	
 	
 if (event.getSource() == btnOne){
	
 	
 	
 numField.setText(numField.getText() + "1");
	
 	
 }
	
 	
 repaint();
	
 }
}


                                                                   23
Container                       ssc




ทําให้ปุ่มเลข 2 ทํางานเหมือนปุ่มเลข 1



                                        24
import java.awt.*;
import javax.swing.*;                                  ssc
import java.awt.event.*;

public class ConApplet extends JApplet implements ActionListener
{
   ...
	
 public void init(){  เพิ่มการรองรับการกระทําที่ปุ่ม 2
       ...
	
 	
 btnTwo = new JButton(" 2 ");
	
 	
 btnTwo.addActionListener(this);
	
 	
 c.add(btnTwo);
	
 }
	
 public void actionPerformed(ActionEvent event){
     ...
	
 }
}

                                                                   25
import java.awt.*;
import javax.swing.*;                                  ssc

import java.awt.event.*;

public class ConApplet extends JApplet implements ActionListener
{
  ...
	
 public void actionPerformed(ActionEvent event){
      ...
	
 	
 else if (event.getSource() == btnTwo){
	
 	
 	
 numField.setText(numField.getText() + "2");
	
 	
 }
	
 	
 repaint();
	
 }                         เพิ่มในส่วนของ
}
                     การ check การกระทําเมื่อกดปุ่ม 2
                                                                   26
Container                           ssc




ให้ประกาศตัวแปรชนิด int เป็นแบบ
private 3 ตัวคือ num1, num2 และ ans
โดยให้ค่าเริ่มต้น 3 ตัวนี้ = 0
   num1 ไว้เก็บค่าตัวเลขชุดแรก
   num2 ไว้เก็บค่าตัวเลขชุดที่สอง
   ans ไว้เก็บค่าผลลัพธ์

                                          27
import java.awt.*;                                     ssc
import javax.swing.*;

public class ConApplet extends JApplet implements ActionListener
{
   private JLabel sNumLabel;
   private JTextField numField;
	
 private JButton btnOne,btnTwo;   : ปุ่ม 1, 2
	
 private JButton btnAdd;           : ปุ่ม +
	
 private JButton btnAnswer;        : ปุ่ม =
	
 private JButton btnClear;         : ปุ่ม C

 private int ans=0,num1=0,num2=0;
 ...


                                                                   28
Container                  ssc




แสดงค่าของ num1, num2 และ ans
ออกมาโดยใช้ g.drawString


                                 29
import java.awt.*;                                     ssc
import javax.swing.*;

public class ConApplet extends JApplet implements ActionListener
{
   ...
	
 public void paint(Graphics g){
! super.paint(g);
       g.drawString("Supaporn Simcharoen",20,450);
	
 	
 g.drawString("num1="+num1,50,300);
	
 	
 g.drawString("num2="+num2,50,350);
	
 	
 g.drawString("ans="+ans,50,400);
	
 }
	
 ...
}

                                                                   30
Container                                     ssc




เมื่อคลิกที่ปุ่ม + ให้นําค่าใน textField
ไปเก็บไว้ใน num1
วิธีการแปลง string เป็น int
ตัวแปร int = Integer.parseInt( ข้อมูลที่เป็น String );


                                                         31
import java.awt.*;
import javax.swing.*;                                  ssc
import java.awt.event.*;

public class ConApplet extends JApplet implements ActionListener
{
   ...
	
 public void init(){  เพิ่มการรองรับการกระทําที่ปุ่ม +
       ...
	
 	
 btnAdd = new JButton(" + ");
	
 	
 btnAdd.addActionListener(this);
	
 	
 c.add(btnAdd);
	
 }
	
 public void actionPerformed(ActionEvent event){
      ...
	
 }
}

                                                                   32
import java.awt.*;
import javax.swing.*;
                                                       ssc
import java.awt.event.*;

public class ConApplet extends JApplet implements ActionListener
{
  ...
	
 public void actionPerformed(ActionEvent event){
      ...
	
 	
 else if (event.getSource() == btnAdd){
	
 	
 	
 num1 = Integer.parseInt( numField.getText() );
	
 	
 	
 numField.setText("");
	
 	
 }
	
 	
 repaint();
	
 }                         เพิ่มในส่วนของ
}                    การ check การกระทําเมื่อกดปุ่ม +
                                                                   33
Container                           ssc




เมื่อคลิกที่ปุ่ม = ให้นําค่าใน textField
ไปเก็บไว้ใน num2
นํา num1 + num2 และเก็บไว้ใน ans


                                           34
import java.awt.*;
import javax.swing.*;                                  ssc
import java.awt.event.*;

public class ConApplet extends JApplet implements ActionListener
{
   ...
	
 public void init(){ เพิ่มการรองรับการกระทําที่ปุ่ม =
       ...
	
 	
 btnAnswer = new JButton(" = ");
	
 	
 btnAnswer.addActionListener(this);
	
 	
 c.add(btnAnswer);
	
 }
	
 public void actionPerformed(ActionEvent event){
      ...
	
 }
}

                                                                   35
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;                               ssc


public class ConApplet extends JApplet implements ActionListener
{
  ...
	
 public void actionPerformed(ActionEvent event){
      ...
	
 	
 else if (event.getSource() == btnAnswer){
	
 	
 	
 num2 = Integer.parseInt( numField.getText() );
          ans = num1+num2;
	
 	
 	
 numField.setText(""+ans);
	
 	
 }
	
 	
 repaint();             เพิ่มในส่วนของ
	
 }                 การ check การกระทําเมื่อกดปุ่ม =
}
                                                                   36
การบาน                              ssc




ให้นักศึกษาเพิ่มปุ่ม 3, 4, 5, 6, 7, 8, 9, 0
และให้สามารถทํางานได้ดังตัวอย่างนี้

http://202.44.47.108/~ssc/ConApplet_hw.html


                                              37

Applet 2 container and action_listener

  • 1.
  • 2.
    Container ssc ให้นักศึกษาสร้าง class แบบ Applet ชื่อว่า ConApplet http://202.44.47.108/~ssc/ConApplet.html 2
  • 3.
    ssc import java.awt.*; import javax.swing.*; publicclass ConApplet extends JApplet{ public void paint(Graphics g){ } } 3
  • 4.
    Container ssc ให้แสดงชื่อ คุณออกมา 4
  • 5.
    ssc importjava.awt.*; import javax.swing.*; public class ConApplet extends JApplet{ public void paint(Graphics g){ g.drawString("Supaporn Simcharoen",20,450); } } 5
  • 6.
    Container ssc ให้สร้าง Container ขึ้นมา 6
  • 7.
    ssc import java.awt.*; import javax.swing.*; publicclass ConApplet extends JApplet{ public void paint(Graphics g){ g.drawString("Supaporn Simcharoen",20,450); } public void init(){ Container c = getContentPane(); c.setLayout( new FlowLayout()); } } 7
  • 8.
    Container ssc สร้าง JLabel ขึ้นมา 1 JLabel ใช้ข้อความคําว่า “Show Number” 8
  • 9.
    import java.awt.*; import javax.swing.*; ssc public class ConApplet extends JApplet{ private JLabel sNumLabel; public void paint(Graphics g){ ! super.paint(g); g.drawString("Supaporn Simcharoen",20,450); } public void init(){ Container c = getContentPane(); c.setLayout( new FlowLayout()); sNumLabel = new JLabel("Show Label"); c.add(sNumLabel); } } 9
  • 10.
    import java.awt.*; import javax.swing.*; ssc public class ConApplet extends JApplet{ ประกาศตัวแปร private JLabel sNumLabel; JLabel public void paint(Graphics g){ ! super.paint(g); g.drawString("Supaporn Simcharoen",20,450); } public void init(){ สร้างมันขึ้นมา Container c = getContentPane(); c.setLayout( new FlowLayout()); sNumLabel = new JLabel("Show Label"); c.add(sNumLabel); } } ใส่มันเข้าไปที่ Container 10
  • 11.
    Container ssc สร้าง JTextField ขึ้นมา 1 อัน 11
  • 12.
    import java.awt.*; import javax.swing.*; ssc public class ConApplet extends JApplet{ private JLabel sNumLabel; private JTextField numField; public void paint(Graphics g){ ! super.paint(g); g.drawString("Supaporn Simcharoen",20,450); } public void init(){ Container c = getContentPane(); c.setLayout( new FlowLayout()); sNumLabel = new JLabel("Show Label"); c.add(sNumLabel); numField = new JTextField(5); c.add(numField); } } 12
  • 13.
    import java.awt.*; import javax.swing.*; ssc public class ConApplet extends JApplet{ private JLabel sNumLabel; ประกาศตัวแปร private JTextField numField; JTextField public void paint(Graphics g){ ! ... } public void init(){ Container c = getContentPane(); c.setLayout( new FlowLayout()); สร้างมันขึ้นมา sNumLabel = new JLabel("Show Label"); c.add(sNumLabel); numField = new JTextField(5); c.add(numField); } } ใส่มันเข้าไปที่ Container 13
  • 14.
    Container ssc สร้าง JButton ขึ้นมา 4 ปุ่่ม โดยให้ เป็นปุ่ม 1 , 2, +, =, และ C 14
  • 15.
    import java.awt.*; ประกาศ ssc import javax.swing.*; ตัวแปร JButton public class ConApplet extends JApplet{ ทั้งหมด private JLabel sNumLabel; private JTextField numField; private JButton btnOne,btnTwo; : ปุ่ม 1, 2 private JButton btnAdd; : ปุ่ม + private JButton btnAnswer; : ปุ่ม = private JButton btnClear; : ปุ่ม C ... 15
  • 16.
    ... numField= new JTextField(10); ssc c.add(numField); btnOne = new JButton(" 1 "); c.add(btnOne); สร้าง btnTwo = new JButton(" 2 "); พวกมัน c.add(btnTwo); btnAdd = new JButton(" + "); ขึ้นมา c.add(btnAdd); btnAnswer = new JButton(" = "); c.add(btnAnswer); btnClear = new JButton(" C "); c.add(btnClear); } } 16
  • 17.
    Container ssc เมื่อคลิกที่ ปุ่ม 1 ให้เลข 1 ไปแสดงที่ JTextField 17
  • 18.
    import java.awt.*; import packet ssc import javax.swing.*; import java.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... implements class public void init(){ ... } public void actionPerformed(ActionEvent event){ } สร้าง method เพื่อรองรับการกระทํา } 18
  • 19.
    import java.awt.*; import javax.swing.*; ssc import java.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... public void init(){ เพิ่มการรองรับการกระทําที่ปุ่ม 1 ... btnOne = new JButton(" 1 "); btnOne.addActionListener(this); c.add(btnOne); } public void actionPerformed(ActionEvent event){ } } 19
  • 20.
    import java.awt.*; ssc import javax.swing.*; เพิ่มในส่วนของ import java.awt.event.*; การ check การกระทําเมื่อกดปุ่ม 1 public class ConApplet extends JApplet implements ActionListener { ... public void actionPerformed(ActionEvent event){ if (event.getSource() == btnOne){ numField.setText("1"); } repaint(); } setText เอาไว้ใช้สําหรับใส่ค่าให้ } กลับ textField ซึ่งจะต้องเป็น String 20
  • 21.
    Container ssc เมื่อคลิกที่ ปุ่ม 1 อีกครั้ง ให้เลข 1 ไปแสดงที่ JTextField ต่อจากเลข 1 ตัวก่อนหน้านี้ได้ 21
  • 22.
    Container ssc คําใบ: ้ วิธีในการดึงข้อมูลใน textField ใช้ numField.getText(); ดึงออกมาแล้วจะได้เป็น String วิธีในการต่อ String ใช้เครื่องหมาย + 22
  • 23.
    ssc import java.awt.*; import javax.swing.*; importjava.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... public void actionPerformed(ActionEvent event){ if (event.getSource() == btnOne){ numField.setText(numField.getText() + "1"); } repaint(); } } 23
  • 24.
    Container ssc ทําให้ปุ่มเลข 2 ทํางานเหมือนปุ่มเลข 1 24
  • 25.
    import java.awt.*; import javax.swing.*; ssc import java.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... public void init(){ เพิ่มการรองรับการกระทําที่ปุ่ม 2 ... btnTwo = new JButton(" 2 "); btnTwo.addActionListener(this); c.add(btnTwo); } public void actionPerformed(ActionEvent event){ ... } } 25
  • 26.
    import java.awt.*; import javax.swing.*; ssc import java.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... public void actionPerformed(ActionEvent event){ ... else if (event.getSource() == btnTwo){ numField.setText(numField.getText() + "2"); } repaint(); } เพิ่มในส่วนของ } การ check การกระทําเมื่อกดปุ่ม 2 26
  • 27.
    Container ssc ให้ประกาศตัวแปรชนิด int เป็นแบบ private 3 ตัวคือ num1, num2 และ ans โดยให้ค่าเริ่มต้น 3 ตัวนี้ = 0 num1 ไว้เก็บค่าตัวเลขชุดแรก num2 ไว้เก็บค่าตัวเลขชุดที่สอง ans ไว้เก็บค่าผลลัพธ์ 27
  • 28.
    import java.awt.*; ssc import javax.swing.*; public class ConApplet extends JApplet implements ActionListener { private JLabel sNumLabel; private JTextField numField; private JButton btnOne,btnTwo; : ปุ่ม 1, 2 private JButton btnAdd; : ปุ่ม + private JButton btnAnswer; : ปุ่ม = private JButton btnClear; : ปุ่ม C private int ans=0,num1=0,num2=0; ... 28
  • 29.
    Container ssc แสดงค่าของ num1, num2 และ ans ออกมาโดยใช้ g.drawString 29
  • 30.
    import java.awt.*; ssc import javax.swing.*; public class ConApplet extends JApplet implements ActionListener { ... public void paint(Graphics g){ ! super.paint(g); g.drawString("Supaporn Simcharoen",20,450); g.drawString("num1="+num1,50,300); g.drawString("num2="+num2,50,350); g.drawString("ans="+ans,50,400); } ... } 30
  • 31.
    Container ssc เมื่อคลิกที่ปุ่ม + ให้นําค่าใน textField ไปเก็บไว้ใน num1 วิธีการแปลง string เป็น int ตัวแปร int = Integer.parseInt( ข้อมูลที่เป็น String ); 31
  • 32.
    import java.awt.*; import javax.swing.*; ssc import java.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... public void init(){ เพิ่มการรองรับการกระทําที่ปุ่ม + ... btnAdd = new JButton(" + "); btnAdd.addActionListener(this); c.add(btnAdd); } public void actionPerformed(ActionEvent event){ ... } } 32
  • 33.
    import java.awt.*; import javax.swing.*; ssc import java.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... public void actionPerformed(ActionEvent event){ ... else if (event.getSource() == btnAdd){ num1 = Integer.parseInt( numField.getText() ); numField.setText(""); } repaint(); } เพิ่มในส่วนของ } การ check การกระทําเมื่อกดปุ่ม + 33
  • 34.
    Container ssc เมื่อคลิกที่ปุ่ม = ให้นําค่าใน textField ไปเก็บไว้ใน num2 นํา num1 + num2 และเก็บไว้ใน ans 34
  • 35.
    import java.awt.*; import javax.swing.*; ssc import java.awt.event.*; public class ConApplet extends JApplet implements ActionListener { ... public void init(){ เพิ่มการรองรับการกระทําที่ปุ่ม = ... btnAnswer = new JButton(" = "); btnAnswer.addActionListener(this); c.add(btnAnswer); } public void actionPerformed(ActionEvent event){ ... } } 35
  • 36.
    import java.awt.*; import javax.swing.*; importjava.awt.event.*; ssc public class ConApplet extends JApplet implements ActionListener { ... public void actionPerformed(ActionEvent event){ ... else if (event.getSource() == btnAnswer){ num2 = Integer.parseInt( numField.getText() ); ans = num1+num2; numField.setText(""+ans); } repaint(); เพิ่มในส่วนของ } การ check การกระทําเมื่อกดปุ่ม = } 36
  • 37.
    การบาน ssc ให้นักศึกษาเพิ่มปุ่ม 3, 4, 5, 6, 7, 8, 9, 0 และให้สามารถทํางานได้ดังตัวอย่างนี้ http://202.44.47.108/~ssc/ConApplet_hw.html 37