SlideShare ist ein Scribd-Unternehmen logo
1 von 95
Downloaden Sie, um offline zu lesen
บทท 5
การสรางสวนตดตอกบผใชแบบกราฟฟก
   (Build Graphical User Interface)
วตถประสงค"
 แนะน%&ส'วนประกอบท,-ส%&คญของ JFC (Java Foundation Class)
 แนะน%&คล&สและอ7นเตอร"เฟสท,-ส%&คญในแพคเก<จ java.awt

 น7ย&มคว&มหม&ยของตวใส'สวนประกอบกร&ฟฟAก (Container) ส'วน
                        '
  ประกอบกร&ฟฟAก (Graphical Component) และรCปแบบก&รจดว&งผง
  (Layout Manager)
 แนะน%&คล&สท,เปJนตวใส'ส'วนประกอบกร&ฟฟAก และคล&สท,-เปJนส'วน
              -
  ประกอบกร&ฟฟAกแบบต'&งๆ
 อธ7บ&ยว7ธก&รใส'ส'วนประกอบกร&ฟฟAกลงในตวใส'สวนประกอบกร&ฟฟAก
           ,                                '
 แนะน%&ว7ธก&รจดว&งผงแบบ FlowLayout,BorderLayout
           ,                                            และ
  GridLayout
วตถประสงค"
 อธ7บ&ยก&รสรM&งเมนCโดยใชMคล&สในแพคเก<จ java.awt

 อธ7บ&ยก&รจดก&รกบรCปแบบของตวอกขระ ส,    และก&รจดก&รกบคณ
  ลกษณะอR-นๆของส'วนประกอบกร&ฟฟAก
 อธ7บ&ยก&รจดว&งผง GUI ท,-ม,คว&มซบซMอน

 แนะน%&แพคเก<จ javax.swing   และคล&สต'&งๆท,-ม,อยC'ในแพคเก<จ
Java Foundation Class
 ระบบปฏ7บต7ก&รส'วนใหญ'จะม,ส'วนต7ดต'อกบผCMใชMเปJนแบบกร&ฟฟAก
  (Graphical User Interface เร,ยกย'อว'& GUI) ทUงน,เนR-องจ&กใชMง&นง'&ยกว'&
                                                  U
 ภ&ษ&จ&ว&จะสนบสนนก&รพฒน&โปรแกรม GUI ท,ส&ม&รถใชMง&นไดMหล&ย
                                       -
  แพลตฟอร"ม โดยจะใชMชดค%&ส-งเด,ยวกน
 Java Foundation Class (JFC) ประกอบดMวยแพคเก<จต'&งๆดงน,U
   •   Abstract Window Toolkit (AWT)
   •   Swing
   •   Java 2D
   •   Accessibility
   •   Drag and Drop
รCปแสดงส'วนประกอบท,ส%&คญของ JFC
                   -
AWT
 แพคเก<จ AWT ประกอบดMวยคล&สต'&งๆท,-เปJนประเภทส'วนประกอบกร&ฟฟAก
  (graphical component) เพRอน%&ไปใชMในก&รพฒน&โปรแกรม GUI
                           -
 แพคเก<จ  AWT จะช'วยในก&รสรM&งโปรแกรม GUI ประเภท look and feel ท,-
  ขbนอยCกบแพลตฟอร"มท,ใชMง&น
    U '                -
 ภ&ษ&จ&ว&ไดMก%&หนดแพคเก<จ AWT ขbUนไวMตงแต'โปรแกรมจ&ว&เวอร"ช-นแรก
                                          U
  (JDK 1.0) โดยอยC'ในแพคเก<จท,ชR-อ java.awt
                              -
 แพคเก<จ AWT จะประกอบไปดMวยคล&สและอ7นเตอร"เฟสต'&งๆเพR-อใชMในก&ร
  พฒน&โปรแกรม GUI
AWT
 ในแพจเกจ java.awt ม,คลาสและอ7นเตอร"เฟสท,-ส"าคญดงน,U
   •   Component
   •   Container
   •   LayoutManager   (อ7นเตอร"เฟส)
   •   Graphics
   •   Color
   •   Font
   •   AWTEvent
รCปแสดงส'วนประกอบท,-ส&คญของ AWT
                     %
คลาส Component
 ก&รเข,ยนโปรแกรม GUI นUนจะเปJนก&รสรM&งออปเจ<คต'&งๆท,-เปJนออปเจ<ค
  ของคล&สท,เปJนส'วนประกอบกร&ฟฟAก
           -
 คล&สท,-เปJนส'วนประกอบกร&ฟฟAกจะสRบทอดม&จ&กคล&สท,-ชR-อ Component

 คล&สท,-เปJน subclass ของคล&ส Component จะแบ'งเปJนสองกล'มคRอ
   •   คล&สท,-เปJนคล&สประเภท Container เปJนคล&สท,ใชMในก&รใส'สวนประกอบกร&ฟฟAก
                                                  -          '
       ต'&งๆ
   •   คล&สท,-เปJนส'วนประกอบกร&ฟฟAกอR-นๆ อ&ท7เช'น Button,Choice และ List
       เปJนตMน
รCปแสดงคลาสทสRบทอดม&จ&กคล&ส Component
คล&สประเภท Container
 โปรแกรม GUI จะตMองม,ก&รสรM&งออปเจ<คของคล&สประเภท Container อย'&ง
  นMอยหนbงออปเจ<คขbUนม&ก'อน เพR-อใชMในก&รใส'ออปเจ<คของคล&สท,-เปJนส'วน
         -
  ประกอบกร&ฟฟAกอR-นๆ
 คล&สประเภท Container ท,-อยCในแพคเก<จ AWT ม,ดงน,U
                             '
   •   Frame
   •   Panel
   •   Dialog
   •   Applet
 คล&สประเภท Container เปJนคล&สท,-สRบทอดม&จ&กคล&สท,-ชR-อ
  Component
คล&ส Container
 คล&สท,-ชR-อ ContainerเปJนคล&สแบบ abstract ซb-งเร&ไม'ส&ม&รถท,-จะ
  สรM&งออปเจ<คของคล&สดงกล'&วไดM แต'จะตMองสรM&งออปเจ<คของคล&สอR-นๆท,-
  สRบทอดม&จ&กคล&สท,ชR-อ Container แทน
                    -
 คล&สท,-ชR-อ Container จะม,เมธอดท,ชR-อ add()ท,-ใชMในก&รใส'ส'วนประกอบ
                                   -
  กร&ฟฟAกอR-นๆ เมธอดน,จะม,รปแบบท,ส%&คญดงน,U
                      U    C     -
   •   void add (Component c)
   •   void add (Component c,int position)
คลาส Frame
 เป$นคลาสทส%บทอดมาจากคลาสท,ชR-อ Window
                            -
 ออปเจ<คของคล&ส Frame จะประกอบดMวย title bar, resizable corner, icon
  และ menu bar
คลาส Frame
 คล&ส Frame จะม,รปแบบของ constructor ท,ส%&คญดงน,U
                  C                     -
   •   public Frame()
   •   public Frame(String title)


 คล&ส Frame จะม,เมธอดท,เก,-ยวขMองกบก&รปรบขน&ดของเฟรมดงน,U
                        -
   •   boolean isResizable()
   •   void setResizable(boolean canResize)
ตวอยางโปรแกรมแสดง Frame
import java.awt.*;


public class FrameSample {
    private Frame fr;
    public void init() {
        fr = new Frame("Frame Sample");
        fr.setSize(200,150);
        fr.show();
    }                                     ผลลพธ"ทไดMจ&กก&รรนโปรแกรม
                                                 ,-
    public static void main(String args[]) {
        FrameSample obj = new FrameSample();
        obj.init();
    }
}
อธ7บ&ยตวอยางโปรแกรม
 ค"าสง fr = new Frame(“Frame Sample”); เป$นค"าสงท,-ใชMในก&ร
  สรางออปเจคของคล&ส Frame
 เมธอด setSize()เป$นเมธอดทใชในการก"าหนดขนาดของ Frame

 เมธอด show() เป$นเมธอดท,-ใชMในก&รแสดง Frame ท,-สรM&งไวM
คลาส Button
   Button เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,-แสดงเปJนปiม โดยจะม,
                     -
    ขMอคว&ม (label) ปร&กฎอยC'บนปiม
   Button เปJนคล&สท,สRบทอดม&จ&กคล&สท,-ชR-อ Component
                     -
 Constructor ของคล&ส Button ม,รปแบบดงน,U
                                C
     •   public Button()
     •   public Button(String label)

 เมธอดท,-ส%&คญในก&รจดก&รกบขMอคว&มม,ดงน,U
     •   public void setLabel(String label)
     •   public String getLabel()
ตวอยางโปรแกรมแสดง Frame ท,-ม, Button
import java.awt.*;


public class ButtonSample {
    private Frame fr;
    private Button bn1;
    public void init() {
        fr = new Frame("Button Sample");
        bn1 = new Button("Submit");
        fr.add(bn1);
        fr.setSize(200,150);
                                           ผลลพธ"ทไดMจ&กก&รรนโปรแกรม
                                                  ,-
        fr.show();
    }
    public static void main(String args[]) {
        ButtonSample obj = new ButtonSample();
        obj.init();
    }
}
ก&รจดว&งผงของส'วนประกอบกร&ฟฟAก
 โปรแกรม GUI ของภ&ษ&จ&ว&จะจดว&งส'วนประกอบกร&ฟฟAกต'&งๆลงใน
    ออปเจ<คของคล&สประเภท Container โดยอตโนมต7
   LayoutManager เปJนอ7นเตอร"เฟสท,ใชในก&รก%&หนดว7ธก&รจดว&งผงส'วน
                                   -               ,
    ประกอบกร&ฟฟAก
 คล&สท,- implements อ7นเตอร"เฟสท,-ชR-อ LayoutManager เพR-อใชMเปJนตว
    จดว&งผงของส'วนประกอบกร&ฟฟAกม,ทUงหมด 5 คล&สคRอ
     •   BorderLayout
     •   FlowLayout
     •   GridLayout
     •   CardLayout
     •   GridBagLayout

 เมธอดท,-ชR-อ setLayout() ใชMในก&รก%&หนดก&รว&งผง
BorderLayout

 Frame โดยทวไปจะถCกก%&หนดใหMมตวจดว&งผงเป$นแบบ BorderLayout
                              ,
 Frame ท,ม,ตวจดว&งผงเปJนแบบ BorderLayout จะท%&ใหMสามารถวางสวน
          -
  ประกอบกราฟฟกไดมากทส/ด 5 ออปเจ<คตามต"าแหนงทศตางๆของ Frame
  ค%อ ทศเหน%อ (NORTH) ทศใต (SOUTH) ทศตะวนออก (EAST) ทศตะวน
  ตก (WEST) และตรงกลาง (CENTER)
 ใชค"าสง new BorderLayout() ในการสรางตวจดวางผงแบบน2
BorderLayout

 ค"าสงในการใสสวนประกอบกราฟฟกค%อเมธอด add() แตจะตองมการระบ/
  ต"าแหนงทศทตองการวางสวนประกอบ
 ตวอย'&งเชน
     fr.add(bn1,BorderLayout.NORTH)

 หากไมระบ/ต"าแหนงทศ สวนประกอบจะถCกใสไวตรงกลาง
ตวอยางโปรแกรม
import java.awt.*;


public class BorderLayoutSample {
    private Frame fr;
    private Button bn1, bn2, bn3, bn4, bn5;
    public void init() {
        fr = new Frame("Button Sample");
        bn1 = new Button("B1");
        bn2 = new Button("B2");
        bn3 = new Button("B3");
        bn4 = new Button("B4");
        bn5 = new Button("B5");
        fr.add(bn1,BorderLayout.NORTH);
        fr.add(bn2,BorderLayout.SOUTH);
        fr.add(bn3,BorderLayout.EAST);
ตวอยางโปรแกรม
         fr.add(bn4,BorderLayout.WEST);
         fr.add(bn5,BorderLayout.CENTER);
         fr.setSize(200,150);
         fr.show();
    }
    public static void main(String args[]) {
         BorderLayoutSample obj = new BorderLayoutSample();
         obj.init();
    }
}



        ผลลพธ"ทไดMจ&กก&รรนโปรแกรม
               ,-
FlowLayout

 ตวจดว&งผงแบบ FlowLayout จะจดวางผงสวนประกอบกราฟฟกจากซาย
  ไปขวา
 ถาความกวางของ Contanier ไมพอ ตวจดว&งผงจะน"าสวนประกอบกราฟฟก
  ทเหล%อลงไปในต"าแหนงถดไปดานลาง
 Frame ส&ม&รถใชตวจดวางผงแบบน2ไดM โดยเรยกใชMเมธอด setLayout()
  แลวสรางตวจดวางผงโดยใชค"าสง new   FlowLayout() ดงน,U
     fr.setLayout(new FlowLayout());
ตวอยางโปรแกรม
import java.awt.*;


public class FlowLayoutSample {
    private Frame fr;
    private Button bn1, bn2, bn3;
    public void init() {
        fr = new Frame("Button Sample");
        fr.setLayout(new FlowLayout());
        bn1 = new Button("Submit");
        bn2 = new Button("Cancel");
        bn3 = new Button("Exit");
        fr.add(bn1);
        fr.add(bn2);
        fr.add(bn3);
ตวอยางโปรแกรม
          fr.setSize(200,150);
          fr.show();
    }
    public static void main(String args[]) {
          FlowLayoutSample obj = new FlowLayoutSample();
          obj.init();
    }
}




        ผลลพธ"ทไดMจ&กก&รรนโปรแกรม
               ,-
GridLayout

 จะแบง Container เป$นชองยอยๆขนาดเทากน

 Frame สามารถใชMตวจดวางผงแบบน2ได โดยเร,ยกใชMเมธอด
  setLayoutแลวสรางตวจดวางผงโดยใชค"าสง new
  GridLayout(row,col) ซb-งจะตองระบ/จ"านวนแถวและคอลมน4ทตองการ
  แบงชองยอยดMวย ดงน,U
       fr.setLayout(new GridLayout(3,2));
   •   จะแบง Container เป$น 6 ชองยอย ทม 3 แถวๆละ 2 คอลมน4
 ใชเมธอด add() ในการใสสวนประกอบกราฟฟกลงในแตละชองยอย โดยจะ
  ใสเรยงจากซายไปขวาและบนลงลาง
ตวอยางโปรแกรม
import java.awt.*;


public class GridLayoutSample {
    private Frame fr;
    private Button bn1, bn2, bn3, bn4, bn5;
    public void init() {
        fr = new Frame("Button Sample");
        fr.setLayout(new GridLayout(3,2));
        bn1 = new Button("B1");
        bn2 = new Button("B2");
        bn3 = new Button("B3");
        bn4 = new Button("B4");
        bn5 = new Button("B5");
ตวอยางโปรแกรม
        fr.add(bn1);
        fr.add(bn2);
        fr.add(bn3);
        fr.add(bn4);
        fr.add(bn5);
        fr.pack();
        fr.setVisible(true);
    }
    public static void main(String args[]) {
        GridLayoutSample obj = new GridLayoutSample();
        obj.init();
    }
}


           ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
ค"าอธบายโปรแกรม
 ค"าสง
   fr.pack();
   • จะปรบขนาดทเหมาะสมใหกบ Frame


   fr.setVisible(true);
   • เป$นการแสดง Frame เชนเดยวกบเมธอด show()
สวนประกอบกราฟฟกทส"าคญในแพคเก<จ AWT
   Button
   Label
   TextField
   TextArea
   Checkbox
   Choice
   List
   Canvas
คล&ส Label
 ค%อสวนประกอบกราฟฟกทใชแสดงขอความยาวหน6งบรรทด ซb-งผCMใชMไม'
  ส&ม&รถปrอนขMอคว&มเขM&ไปไดM
 Constructor ของคล&ส Label ท,-ส%&คญม,ดงน,U
   •   public Label(String text)
   •   public Label(String text,int align)
 เราสามารถทจะก"าหนดหร%อเปลยนขอความของ Label ไดโดยเรยกใช
  เมธอด setText(String      text)
คล&ส TextField
 ค%อสวนประกอบกราฟฟกเพ%อใหผใชป7อนขอความยาวหน6งบรรทดได
 Constructor ของคล&ส TextField ท,ส%&คญม,ดงน,U
                                  -
   •   public   TextField()
   •   public   TextField(int col)
   •   public   TextField(String text)
   •   public   TextField(String text, int col)
 เราสามารถทจะก"าหนดหร%อเปลยนขอความโดยใช
  เมธอดsetText(String text)
 เมธอด setEditable(boolean b)เปJนเมธอดท,ใชMเพRอก"าหนดให
                                           - -
  TextField สามารถอานไดอยางเดยว โดยจะตMองม,ก&รส'ง argument เป$น
  false
ตวอยางโปรแกรม
import java.awt.*;


public class TextFieldDemo {
    private Frame fr;
    private Label l;
    private TextField tf;
    public void init() {
        fr = new Frame("TextField Demo");
        l = new Label("Name: ");
        tf = new TextField("Thanisa", 15);
        fr.setLayout(new FlowLayout());
ตวอยางโปรแกรม
         fr.add(l);
         fr.add(tf);
         fr.pack();
         fr.show();
     }
     public static void main(String args[]) {
         TextFieldDemo obj = new TextFieldDemo();
         obj.init();
     }
 }




ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
คล&ส TextArea
 ค%อสวนประกอบกราฟฟกเพ%อใหผใชป7อนขอความได และส&ม&รถมจ"านวน
  บรรทดไดหลายบรรทดตามทระบ/
 Constructor ของคล&ส TextArea ท,-ส%&คญม,ดงน,U
   •   public   TextArea()
   •   public   TextArea(String str)
   •   public   TextArea(int row,int col)
   •   public   TextArea(String str,int row,int col)
   •   public   TextArea(String str,int row,int col,int scrollbar)
ตวอยางโปรแกรมแสดง TextArea
import java.awt.*;


public class TextAreaDemo {
    private Frame fr;
    private TextArea ta;
    public void init() {
         fr = new Frame("TextArea Demo");
         ta = new TextArea("Text Area",5,10);
         fr.setLayout(new FlowLayout());
         fr.add(ta);
         fr.setSize(200,150);
         fr.setVisible(true);
                                                ผลลพธ"ทไดMจ&กก&รรนโปรแกรม
                                                       ,-
    }
    public static void main(String args[]) {
         TextAreaDemo obj = new TextAreaDemo();
         obj.init();
    }
}
คล&ส Checkbox และ CheckboxGroup
 ค%อสวนประกอบกราฟฟกทใหผใชเล%อกหร%อไมเล%อกชองตางๆได โดย
  ส&ม&รถเลRอกไดMหล&ยช'องพรMอมๆกน
 มขอความ (Label) อยขางๆ

 Constructor ของคล&ส Checkbox ท,ส%&คญม,ดงน,U
                                 -
    •   public Checkbox(String label)
    •   public Checkbox(String label, boolean state)

 ถM&ตMองก&รใหMอยC'ในรCปแบบของ radio button ซbงจะส&ม&รถเลRอกไดMเพ,ยง 1
                                              -
  ช'องเท'&นUน จะตMองระบ/ใหออปเจคของคล&ส Checkbox อยในกล/มของ
  ออปเจคของคล&ส CheckboxGroup
ตวอยางโปรแกรมแสดง Checkbox
import java.awt.*;


public class CheckboxDemo {
    public static void main(String args[]) {
        Frame fr = new Frame("Checkbox Demo");
        Checkbox c1 = new Checkbox("Visual Basic");
        Checkbox c2 = new Checkbox("C++",false);
        Checkbox c3 = new Checkbox("Java",true);
        fr.setLayout(new FlowLayout());
        fr.add(c1);
        fr.add(c2);
        fr.add(c3);
        fr.pack();
        fr.show();       ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
    }
}
ตวอยางโปรแกรมแสดง CheckboxGroup
import java.awt.*;

public class CheckboxGroupDemo {
    public static void main(String args[]) {
        Frame fr = new Frame("CheckboxGroup Demo");
        CheckboxGroup cg = new CheckboxGroup();
        Checkbox c1 = new Checkbox("One", true,cg);
        Checkbox c2 = new Checkbox("Two", false,cg);
        Checkbox c3 = new Checkbox("Three", cg, true);
        fr.setLayout(new GridLayout(3,1));
        fr.add(c1);
        fr.add(c2);
                          ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
        fr.add(c3);
        fr.pack();
        fr.show();
    }
}
คล&ส Choice
 คล&ส Choice เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,-เปJนร&ยก&รใหMผCMใชM
                        -
  ส&ม&รถเลRอกไดM
 คล&ส Choice จะแสดงร&ยก&รปร&กฏใหMเห<นเฉพ&ะร&ยก&รท,เลRอกเพ,ยง
                                                   -
  ร&ยก&รเด,ยว แต'จะแสดงร&ยก&รทUงหมดห&กม,ก&รคล7กเม&ส"
 Constructor ของคล&ส Choice ท,ส%&คญม,ดงน,U
                               -
    •   public Choice()
 เมธอด addItem() เป$นเมธอดทใชส"าหรบใสรายการลงในออปเจค
  choice
 เมธอด select(int pos) หร%อ select(String str) เปJนเมธอดท,-
  ใชMในก&รเล%อกใหแสดงรายการทต"าแหนงหร%อขอความใดขอความหน6งได
ตวอยางโปรแกรมแสดง Choice
import java.awt.*;


public class ChoiceDemo {
    public static void main(String args[]) {
        Frame fr = new Frame("Choice Demo");
        Choice c = new Choice();
        c.addItem("New Zealand");
        c.addItem("Thailand");
        c.addItem("USA");
                                    ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
        c.add("Japan");
        c.select("Thailand");
        fr.add(c);
        fr.pack();
        fr.show();
    }
}
คล&ส List
   List เป$นคลาสทใชสรางออปเจคทเป$นสวนประกอบกราฟฟกเพ%อใหผใช
    สามารถเล%อกรายการคลายกบ Choice แตจะแตกตางกนตรงท List จะ
    แสดงรายการหลายรายการตามจ"านวนแถวทระบ/
 Constructor ของคล&ส List ท,ส%&คญม,ดงน,U
                             -
     •   public List()
     •   public List(int row)
     •   public List(int row,boolean multipleMode)
 เมธอด add()เป$นเมธอดทใชในการใสรายการลงไปในออปเจคของคล&ส
  List
ตวอยางโปรแกรมแสดง List
import java.awt.*;

public class ListDemo {
   private Frame fr;
   private List l;
   public void init() {
        fr = new Frame("List Demo");
        l = new List(3,true);
        l.add("One");                    ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
        l.add("Two");
        l.add("Three");
        fr.add(l);
        fr.pack();
        fr.setVisible(true);
   }
   public static void main(String args[]) {
        ListDemo obj = new ListDemo();
        obj.init();
   }
ก&รสรM&งเมนC
 เมนCเปJนออปเจ<คของคล&สท,สRบทอดม&จ&กคล&สท,-ชR-อ MenuComponent
                          -
 คล&สท,-สบทอดม&จ&กคล&ส MenuComponent ท,ส%&คญม,ดงน,U
          R                             -
   •   MenuBar เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,เก<บกล'มของออปเจ<คของคล&ส
                           -                     -
       Menu ซb-งจะปร&กฏเปJนแถบเมนCโดยออปเจ<คของคล&สน,UจะตMองม,ออปเจ<คของคล&ส
       Frame ท,คC'กน
                -
   •   Menu เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,เก<บกล'มของออปเจ<คของคล&ส
                      -                     -
       MenuItem และตวแยกร&ยก&ร (separator)
   •   MenuItem เปJนคล&สท,ใชMในก&รสรMรM &งออปเจ<คท,เปJนร&ยก&ร
                             -                      -
   •   CheckboxMenuItem เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,เปJนร&ยก&รโดยจะม,
                                      -                     -
       เครR-องหม&ยถCกท,จะแสดงขbUนเมR-อร&ยก&รน,UถCกเลRอก
                       -
รCปแสดงคล&สท,-สRบทอดม&จ&กคล&ส MenuComponent
คล&ส MenuBar
 คRอแถบของเมนทจะอยCตรงส'วนบนของคล&สประเภท Container เช'น
                    '
  Frame (ระบบปฏบตการบางประเภทอาจจะไมแสดงแถบของเมน หากไมม
  รายการในเมน)
 Constructor ของคล&ส   MenuBar   ท,ส%&คญม,ดงน,U
                                    -
   •   public MenuBar()
 เราสามารถทจะใสออปเจคของคล&ส MenuBar          ลงใน Container ไดโดยใช
  เมธอด setMenuBar()
 คลาส MenuBar ส%บทอดมาจากคลาส MenuComponent
ตวอยางโปรแกรมแสดง MenuBar
import java.awt.*;


public class MenuBarDemo {
    private Frame fr;
    private MenuBar mb;
    public void init() {
         fr = new Frame("MenuBar Demo");
         mb = new MenuBar();
         fr.setMenuBar(mb);
         fr.setSize(200,150);
                                       ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
         fr.setVisible(true);
    }
    public static void main(String args[]) {
         MenuBarDemo md = new MenuBarDemo();
         md.init();
    }
}
คล&ส Menu
 คRอรายการทแสดงบนแถบของเมน
 Constructor ของคล&ส Menu ท,ส%&คญม,ดงน,U
                             -
   •   public Menu()
   •   public Menu(String label)
   •   public Menu(String label,boolean tearOff)
 เราสามารถก"าหนดหร%อเปลยนช%อรายการในออปเจคของคล&ส Menu โดย
  ใชเมธอด setLabel(String label)
 เมธอด add() ในคลาส MenuBar ใชในการใสออปเจคของคล&ส Menu ลง
  ไปในออปเจ<คของคล&ส MenuBar แต'ถM&ออปเจคของคล&ส Menu เป$น
  รายการ Help เราจะใชเมธอด setHelpMenu() ในการใสออปเจคแทน
ตวอยางโปรแกรมแสดง Menu
import java.awt.*;


public class MenuDemo {
   private Frame fr;
   private MenuBar mb;
   private Menu m1,m2,m3,m4;
   public void init() {
        fr = new Frame("Menu Demo");
        mb = new MenuBar();
        m1 = new Menu("File");
        m2 = new Menu("Edit");
        m3 = new Menu("View");
        m4 = new Menu("Help");
ตวอยางโปรแกรมแสดง Menu
         fr.setMenuBar(mb);
         mb.add(m1);
         mb.add(m2);
         mb.add(m3);                     ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
         mb.setHelpMenu(m4);
         fr.setSize(200,150);
         fr.setVisible(true);
    }
    public static void main(String args[]) {
         MenuDemo mm = new MenuDemo();
         mm.init();
    }
}
คล&ส MenuItem
 ค%อรายการยอยทอยในออปเจคของคล&ส Menu
 Constructor ของคล&ส MenuItem ท,-ส%&คญม,ดงน,U
   •   public MenuItem()
   •   public MenuItem(String label)
   •   public MenuItem(String label,MenuShortcut s)
 เราสามารถทจะใสออปเจคของคล&ส MenuItem ลงไปในออปเจคของ
  คล&ส Menu ไดMโดยใชเมธอด add()
 เราสามารถทจะก"าหนด Shortcut ของรายการทอยในออปเจคของ
  คล&สMenuItem ไดMโดยใชMออปเจ<คของคล&ส MenuShortcut
 Constructor ของคล&ส MenuShortcut ท,ส%&คญม,ดงน,U
                                     -
   •   public MenuShortcut(int key)
ขUนตอนการสรางเมนC
 สรางออปเจคของคล&ส MenuBar แลวใสลงไปในออปเจคของคล&ส
  ประเภท Container เชน Frame
 สรางออปเจคของคล&ส Menu แลวใสลงไปในออปเจคของคล&ส
  MenuBar โดยท,ส&ม&รถสรM&งออปเจ<คของคล&ส Menu ไดMม&กกว'&หน6ง
               -
  ออปเจค
 สรางออปเจคของคล&ส MenuItem แลวใสลงไปในออปเจคของคล&ส
  Menu โดยท,-ส&ม&รถสรM&งออปเจ<คของคล&ส MenuItem ไดMม&กกว'&หน6ง
  ออปเจค
ตวอยางโปรแกรมแสดง MenuItem
import java.awt.*;
public class MenuItemDemo {
   private Frame fr;
   private MenuBar mb;
   private Menu m1,m2,m3,m4;
   private MenuItem mi1,mi2,mi3,mi4;
   private MenuShortcut ms1;
   public void init() {
        fr = new Frame("MenuItem Demo");
        mb = new MenuBar();
        m1 = new Menu("File");
        m2 = new Menu("Edit");
        m3 = new Menu("View");
        m4 = new Menu("Help");
        fr.setMenuBar(mb);
        mb.add(m1);
        mb.add(m2);
        mb.add(m3);
        mb.setHelpMenu(m4);
ตวอยางโปรแกรมแสดง MenuItem
         char key = 'N';
         ms1 = new MenuShortcut(key);
         mi1 = new MenuItem("New",ms1);
         mi2 = new MenuItem("Open");
         mi3 = new MenuItem("Save");
         mi4 = new MenuItem("Exit");
         m1.add(mi1); m1.add(mi2);
         m1.addSeparator();
         m1.add(mi3);
         m1.addSeparator();                ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
         m1.add(mi4);
         fr.setSize(200,200);
         fr.setVisible(true);
    }
    public static void main(String args[]) {
         MenuItemDemo mid= new MenuItemDemo();
         mid.init();
    }
}
คล&ส CheckboxMenuItem
 ค%อรายการเมนทมเคร%องหมายระบ/วารายการน2ถกเล%อก
 Constructor ของคล&ส CheckboxMenuItem ท,ส%&คญม,ดงน,U
                                         -
   •   public CheckboxMenuItem()
   •   public CheckboxMenuItem(String label)
   •   public CheckboxMenuItem(String label,boolean state)
 เราสามารถทจะเปลยนสถานะของออปเจคชนด CheckboxMenuItem ไดM
  โดยใชเมธอด setState(boolean     b)
ตวอยางโปรแกรมแสดง CheckboxMenuItem
import java.awt.*;


public class CheckboxMenuDemo {
   private Frame fr;
   private MenuBar mb;
   private Menu m1,m2,m3;
   private MenuItem mi;
   private CheckboxMenuItem cbm;
   public void init() {
        fr = new Frame("CheckboxMenuItem Demo");
        mb = new MenuBar();
        m1 = new Menu("File");
        m2 = new Menu("Edit");
        m3 = new Menu("View");
        fr.setMenuBar(mb);
        mb.add(m1);
        mb.add(m2);
        mb.add(m3);
ตวอยางโปรแกรมแสดง CheckboxMenuItem
         mi = new MenuItem("Toolbars");
         cbm = new CheckboxMenuItem("Status Bar", true);
         m3.add(mi);
         m3.add(cbm);
         fr.setSize(200,200);
         fr.setVisible(true);
    }
    public static void main(String args[]) {
         CheckboxMenuDemo obj= new CheckboxMenuDemo();
         obj.init();
    }
}



    ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
ขUนตอนการสรางเมนCย'อย
 สรางออปเจคของคล&ส MenuBar แลวใสลงไปในออปเจคของคล&ส
  ประเภท Container เชน Frame
 สรางออปเจคของคล&ส Menu แลวใสลงไปในออปเจคของคล&ส MenuBar

 สรางออปเจคของคล&ส Menu ส%&หรบเปJนเมนCยอย แลวใสลงไปในออปเจค
                                        '
  ของคล&ส Menu ท,เปJนเมนCหลก
                 -
 สรางออปเจคของคล&ส MenuItem แลวใสลงไปในออปเจคของคล&ส
  Menu ท,-เปJนเมนCยอย
                   '
ตวอยางโปรแกรมแสดงเมนCยอย
                               '
import java.awt.*;


public class SubMenuDemo {
   private Frame fr;
   private MenuBar mb;
   private Menu m1,m2,m3, ms1;
   private MenuItem mi2,mi3,mi4, msi1, msi2;


   public void init() {
        fr = new Frame("SubMenuItem Demo");
        mb = new MenuBar();
        m1 = new Menu("File");
        m2 = new Menu("Edit");
        m3 = new Menu("View");
        fr.setMenuBar(mb);
        mb.add(m1);
        mb.add(m2);
        mb.add(m3);
ตวอยางโปรแกรมแสดงเมนCยอย
                          '
    ms1 = new Menu("New");
    mi2 = new MenuItem("Open");
    mi3 = new MenuItem("Save");
    mi4 = new MenuItem("Exit");
    m1.add(ms1);
    m1.add(mi2);
    m1.addSeparator();
    m1.add(mi3);
    m1.addSeparator();
    m1.add(mi4);
    msi1 = new MenuItem("Window");
    msi2 = new MenuItem("Message");
    ms1.add(msi1);
    ms1.addSeparator();
    ms1.add(msi2);
    fr.setSize(200,200);
    fr.setVisible(true);
}
ตวอยางโปรแกรมแสดงเมนCยอย
                                 '
    public static void main(String args[]) {
          SubMenuDemo obj= new SubMenuDemo();
          obj.init();
    }
}




        ผลลพธ"ทไดMจ&กก&รรนโปรแกรม
               ,-
ค/ณลกษณะของคลาส Component
 ส'วนประกอบกร&ฟฟAกต'&งๆจะม,คณลกษณะอRนอ&ท7เช'น รCปแบบของฟอนต"
                                     -
  ส,ของพRUนหลงหรRอส,ของพRนหนM& (Foreground) เร&ส&ม&รถท,-จะก%&หนด
                         U
  คณลกษณะของส'วนประกอบกร&ฟฟAกไดM โดยปกต7สวนประกอบกร&ฟฟAกจะ
                                                 '
  ใชMคณลกษณะแบบเด,ยวกบออปเจ<คประเภท Container ท,บรรจอยCเวMนแต'จะ
                                                     -        '
  ม,ก&รก%&หนดคณลกษณะเฉพ&ะของส'วนประกอบกร&ฟฟAกนUนๆ
 เมธอดท,-ใชMในก&รก%&หนดคณลกษณะของส'วนประกอบกร&ฟฟAก จะอยC'ใน
  คล&ส Component โดยม,เมธอดท,ส%&คญคRอ
                             -
   •   setFont(Font f)
   •   setForeground(Color c)
   •   setBackground(Color c)
คล&ส Font
 เร&ส&ม&รถสรM&งออปเจ<คของคล&ส Font เพRอใชMในก&รก%&หนดฟอนต"ไดM
                                       -
 Constructor ของคล&ส Font    ท,ส%&คญม,ดงน,U
                                -
   •   public Font(String name,int style,int size)
         — name ค%อช%อฟอนต4
         — style ค%อรปแบบของฟอนต4 เชน Font.PLAIN,Font.BOLD,

              Font.ITALIC
         — size ค%อขนาดของฟอนต4


 เราสามารถก"าหนดฟอนต4ใหกบออปเจคของคลาส Component โดยใช
  เมธอด setFont()
คล&ส Color
 เร&ส&ม&รถสรM&งออปเจ<คของคล&ส Color เพRอใชMในก&รก%&หนดส,ไดM
                                        -
 Constructor ของคล&ส Color ท,-ส%&คญม,ดงน,U
   •   public Color(int r,int g,int b)
         — โดยท,- r,g,b คRอค'&คว&มเขMมของแสงส,แดง   เข,ยว และนU%&เง7น ต&มล%&ดบ
 ตวอย'&งเช'น
   •   yellow = new Color(255,255,0);
   •   black = new Color(0,0,0);
ตวอยางโปรแกรมแสดงคณลกษณะ
import java.awt.*;


public class AttributeDemo {
   private Frame fr;
   private Button bn1,bn2,bn3;


   public void init() {
        fr = new Frame("ShowAttribute");
        bn1 = new Button("OK");
        bn2 = new Button("Cancel");
        bn3 = new Button("Help");
        fr.setLayout(new FlowLayout());
        fr.add(bn1);
        fr.add(bn2);
        fr.add(bn3);
ตวอยางโปรแกรมแสดงคณลกษณะ
         fr.setFont(new Font("TimesRoman",Font.BOLD,16));
         fr.setForeground(Color.blue);
         fr.setBackground(Color.green);
         bn2.setForeground(Color.red);
         fr.setSize(200,200);
         fr.show();
    }
    public static void main(String args[]) {
         AttributeDemo   ad = new AttributeDemo();
         ad.init();
    }
}



    ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
คล&ส Canvas
 แพ<คเกจ AWT ม,คล&สท,-เปJนส'วนประกอบกร&ฟฟAกท,ชR-อ Canvas
                                              -               ซb-งเปJน
  เนRอท,-ว'&งเปล'&ท,-ส&ม&รถใชMในก&รว&ดรCปกร&ฟฟAกหรRอเข,ยนขMอคว&มใดๆไดM
     U
 คล&สน,Uจะม,เมธอดท,ชR-อ paint()
                    -              ซbงม,รปแบบดงน,U
                                     - C
      public void paint(Graphics g) {
            [statements]
      }
 ก&รสรM&งภ&พกร&ฟฟAกในภ&ษ&จ&ว&จะท%&ไดMโดยก&รสรM&งคล&สท,-เปJนส'วน
  กร&ฟฟAก ซb-งสRบทอดม&จ&กคล&สท,ชR-อ Canvas แลMว override เมธอดท,-ชR-อ
                               -
  paint()
ตวอย'&งโปรแกรม
import java.awt.*;


public class MyCanvas extends Canvas {
      public void paint(Graphics g) {
          g.drawLine(10,10,100,100);
      }
}
ตวอย'&งโปรแกรม
import java.awt.*;
public class GUIDemo {
      public static void main(String args[]) {
          Frame fr = new Frame("Draw line");
          MyCanvas mc = new MyCanvas();
          fr.add(mc);
          fr.setSize(150,150);
          fr.setVisible(true);
      }
}




     ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
คลาส Panel
 เป$นคลาสประเภท Container ท%&ใหMสามารถใสสวนประกอบกราฟฟกตางๆได

 แตกตางจาก Frame ตรงทไมม title bar และไม'ม, resizable corner
   Applet เป$นคลาสทส%บทอดมาจากคลาส Panel
 โดยทวไปจะมตวจดการวางผงแบบ FlowLayout

 สามารถทจะบรรจ/   Panel ลงใน Frame ได
การสรางโปรแกรม GUI ทซบซอน
 โดยสวนใหญ GUI จะมสวนประกอบกราฟฟกตางๆมากมาย     และการวางผง
  อาจจะตองมผงหลายช2นทซอนกน
                 Panel ลงไปใน Frame หร%อ Panel ตวอ%น แลวใสสวน
 เราสามารถทจะบรรจ/
  ประกอบกราฟฟกลงใน Panel อกทหน6ง เพ%อสราง GUI ทซบซอนข62น
 เราสามารถทจะก"าหนดให Panel แตละตวมตววางผงตางชนดกนได
ตวอยาง GUI ท,ซบซMอน
             -
ตวอยางโปรแกรมแสดง GUI ท,ซบซMอน
                              -
import java.awt.*;


public class StickyPad {
    private Frame fr;
    private Panel p1, p2;
    private TextArea ta1, ta2;
    private Button bn1, bn2, bn3;
    public void init() {
        fr = new Frame("Sticky Pad");
        p1 = new Panel();
        p2 = new Panel();
        bn1 = new Button("Submit");
        bn2 = new Button("Leave");
        bn3 = new Button("Return");
        ta1 = new TextArea(4,40);
        ta2 = new TextArea(4,40);
ตวอยางโปรแกรมแสดง GUI ท,ซบซMอน
                            -
     ta1.setBackground(Color.pink);
    ta1.setFont(new Font("Dialog",Font.PLAIN,20));

    ta2.setBackground(Color.lightGray);
    ta2.setFont(new Font("Dialog",Font.PLAIN,20));
    p1.setLayout(new GridLayout(2,1));
    p1.add(ta1);
    p1.add(ta2);
    p2.setLayout(new FlowLayout());
    p2.add(bn1);
    p2.add(bn2);
    p2.add(bn3);
    fr.add(p1);
    fr.add(p2,BorderLayout.SOUTH);
    fr.setSize(400,300);
    fr.show();
}
ตวอยางโปรแกรมแสดง GUI ท,ซบซMอน
                                -
        public static void main(String args[]) {
         StickyPad obj = new StickyPad();
         obj.init();
    }
}
แพคเก<จ Swing
 Swing เป$นแพคเกจส"าหรบพฒนาโปรแกรม GUI ซ6งมสวนประกอบกราฟฟก
  ทมากชนดกวาทมอยในแพคเกจ AWT
 สวนประกอบกราฟฟกของแพคเกจ Swing จะมลกษณะทดกวาสวนประกอบ
  กราฟฟกของแพคเกจ AWT
 สวนประกอบกราฟฟกของแพคเกจ Swing สามารถก"าหนดรปแบบของ look
  and feel ทท"าใหไดโปรแกรม GUI ทมรปแบบของกราฟฟกเหม%อนกนในท/ก
  แพลตฟอร4ม ซ6งจะแตกตางกบแพคเกจ AWT ทจะมรปแบบของกราฟฟกซ6ง
  ข62นอยกบ look and feel ของแตละแพลตฟอร4ม
 การก"าหนด look and feel ไดเองท"าใหโปรแกรม
                                       GUI ทใชออปเจคของ
  แพคเกจ Swing แสดงผลไดชากวาโปรแกรม GUI ทใชออปเจคของ    แพค
  เกจ AWT
แพคเก<จ Swing
 แพคเก<จของ Swing อยC'ในแพคเกจทช%อ javax.swing
 คล&สท,-เปJนส'วนประกอบกร&ฟฟAกของแพคเก<จ Swing ทกคล&สจะสRบทอด
  ม&จ&กคล&ส JComponent
 คล&ส JComponent จะส%บทอดม&จากคลาส Container ในแพคเก<จAWT
  อ,กต'อหนbง
           -
 แพคเก<จ Swing จะม,คล&สท,-เปJนส'วนประกอบกร&ฟฟAกท,-สอดคลMองกบคล&ส
  ในแพคเก<จ AWT โดยคล&สเหล'&น,จะม,ชR-อขbUนตMนดMวยตวอกษร ‘J’
                              U
คล&สต'&งๆท,-สบทอดม&จ&กคล&ส JComponent
             R
คล&สท,เปJนสวนประกอบกราฟฟกในแพคเก<จ Swing
      -
 คล&สท,-เปJนสวนประกอบกราฟฟกทส"าคญในแพคเก<จ Swing มดงน2
   •   JFrame
   •   JPanel
   •   JButton
   •   JLabel
   •   JTextField
   •   JTextArea
   •   JScrollbar
   •   JToolTip
คล&ส JFrame
 แพคเก<จ Swing ม,คล&สประเภท Container ท,-แตกต'&งจ&กคล&สประเภท
  Container ของแพคเก<จ AWT คRอ JFrame,JDialog,JPanel และ
  JApplet โดยท-วไปโปรแกรม GUI ท,เปJนโปรแกรมจ&ว&ประยกต"จะใชM
                                  -
  Container ท,เปJนออปเจ<คของคล&ส JFrame
              -
 คล&ส JFrame จะสRบทอดม&จ&กคล&ส Frame โดยม, constructor ท,-ส%&คญ
  ดงน,U
    •   public JFrame()
    •   public JFrame(String title)
Panes
 ออปเจคของคลาส JFrame แตกตางกบ Frame ตรงทมหนาตาง (pane) อย
  4 หนาตางดงน,U
   •   root pane
   •   layer pane
   •   glass pane
   •   content pane
เมธอด getContentPane()
 เร&ไม'ส&ม&รถท,จะใส'ส'วนประกอบกร&ฟฟAกลงใน JFrame ไดMโดยตรง แต'จะ
                -
  ตMองใส'ลงในหนM&ต'&งท,-เปJน content pane แทน
 เร&ส&ม&รถท,-จะเร,ยกออปเจ<คของคล&สประเภท Container ดงกล'&วม&ไดM
  โดยใชMเมธอดท,ชR-อ getContentPane() และส&ม&รถท,จะใส'สวนประกอบ
               -                                 -     '
  กร&ฟฟAกลงในออปเจ<คดงกล'&วไดMโดยใชMเมธอด add()
 ตวอย'&งเช'น

      Container c = fr.getContentPane();
      c.setLayout(new BorderLayout());
      c.add(bn1,BorderLayout.SOUTH);
ตวอยางแสดงโปรแกรม GUI ท,-ใชMคล&สในแพคเก<จ Swing
 import java.awt.*;
 import javax.swing.*;


 public class StickyPadSwing {
     private JFrame fr;
     private JPanel p1, p2;
     private JTextArea ta1, ta2;
     private JButton bn1, bn2, bn3;
     public void init() {
        fr = new JFrame("Sticky Pad");
        p1 = new JPanel();
        p2 = new JPanel();
        bn1 = new JButton("Submit");
        bn2 = new JButton("Leave");
        bn3 = new JButton("Return");
ตวอยางแสดงโปรแกรม GUI ท,-ใชMคล&สในแพคเก<จ Swing
         ta1 = new JTextArea(4,40);
       ta2 = new JTextArea(4,40);
       ta1.setBackground(Color.pink);
       ta1.setFont(new Font("Dialog",Font.PLAIN,20));
       ta2.setBackground(Color.lightGray);
       ta2.setFont(new Font("Dialog",Font.PLAIN,20));
       p1.setLayout(new GridLayout(2,1));
       p1.add(ta1);
       p1.add(ta2);
       p2.setLayout(new FlowLayout());
       p2.add(bn1);
       p2.add(bn2);
       p2.add(bn3);
       Container c = fr.getContentPane();
       c.add(p1);
ตวอยางแสดงโปรแกรม GUI ท,-ใชMคล&สในแพคเก<จ Swing
          c.add(p2,BorderLayout.SOUTH);
         fr.setSize(400,300);
         fr.show();
     }
     public static void main(String args[]) {
         StickyPadSwing obj = new StickyPadSwing();
         obj.init();
     }
 }
ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
คล&ส JComponent
 สวนประกอบกราฟฟกของ Swing เพมค/ณลกษณะตางๆข62นมามาก เรา
  สามารถใชค/ณลกษณะเหลาน2โดยเร,ยกใชเมธอดในคลาส JComponent
 เมธอด setBorder(Border bd) ใชส"าหรบก"าหนดขอบใหกบสวน
  ประกอบกราฟฟก
 เมธอด setToolTipText(String text)ใชส"าหรบก"าหนดขอความท
  จะแสดงเป$น tooltip
คณลกษณะเด'นอR-นๆ
 แพคเก<จ Swing ยงม,เมธอดอR-นๆท,-ใชMในก&รก%&หนดรCปลกษณ"และ
  คณลกษณะเด'นของออปเจ<คท,เปJนส'วนประกอบกร&ฟฟAกต'&งๆเพ7มเต7ม
                         -                            -
  อ&ท7เช'น
   •   void setMnemonic(char c)   หรRอ
   •   void setMnemonic(int i)
   •   void setIcon(Icon c)
คล&ส LookAndFeel
 แพคเก<จ Swing จะอนญ&ตใหMผCMใชMก%&หนด look and feel ของโปรแกรม GUI
  บนแพลตฟอร"มต'&งๆเองไดM โดยใชMคล&สท,-ชR-อ LookAndFeel
 คล&ส LookAndFeel    ใชMในก&รก%&หนดรCปแบบต'&งๆของส'วนประกอบ
  กร&ฟฟAกเช'น ฟอนต" ขน&ด ส, ก&รจดก&รกบเหตก&รณ" (Event) เปJนตMน
 โดยท-วไปโปรแกรม GUI ท,-ใชMแพคเก<จ Swing จะสรM&งออปเจ<คของคล&ส
  UIManager ขbUนม&ตอนรนโปรแกรม เพRอตรวจสอบรCปแบบ look and feel
                                  -
  ของโปรแกรม GUI และเร&ส&ม&รถท,จะก%&หนดรCปแบบ look and feel ใหม'
                               -
  ไดMโดยใชMเมธอด
      UIManager setLookAndFeel(LoodAndFeel l)
คล&ส Dialog
 คลาส Dialog เป$นคลาสทส%บทอดมาจากคลาส Window

 คลาส Dialog จะท"างานอยภายใตออปเจคของคลาส Frame ท2งน2การสรางออป
  เจคของคลาส Dialog จะตองระบ/ออปเจคของคลาส Frame ทคกนซ6งเรยกวา
  เฟรมแม (parent frame) และอาจก%&หนดโหมดการท"างานใหMเปJนแบบ modal ซ6ง
  ผใชตองปดออปเจคของคลาส Dialog กอนจ6งจะกลบมาท"างานในออปเจคของ
  คลาส Frame ทคกนได
 คลาส Dialog มรปแบบของ        constructor ทส"าคญดงน2
   •   public   Dialog(Frame   parent)
   •   public   Dialog(Frame   parent, String title)
   •   public   Dialog(Frame   parent, boolean isModal)
   •   public   Dialog(Frame   parent, String title, boolean isModal)
สรปเนRอห&ของบท
                           U
 คล&สท,-อยC'ในแพคเก<จ java.awt ส&ม&รถน%&ม&ใชMสรM&ง GUI แบบ Look
  and Feel ต&มแพลตฟอร"มท,-ใชMง&นไดM โดยม,คล&ส Component เปJน
  Superclass ของทกคล&สท,เปJนคล&สประเภทตวใส'ส'วนประกอบกร&ฟฟAก
                           -
  และคล&สประเภทส'วนประกอบกร&ฟฟAก
 รCปแบบก&รจดว&งผงส'วนประกอบกร&ฟฟAกในตวใส'ส'วนประกอบกร&ฟฟAกม,
  ทUงหมด 5 รCปแบบคRอ BorderLayout, FlowLayout, GridLayout,
  CardLayout และ GridBagLayout
 ก&รจดว&งผงของส'วนประกอบกร&ฟฟAกแบบ BorderLayout จะเปJนก&ร
  ว&งต&มท7ศต'&งๆไดM 5 ท7ศ ส'วน FlowLayout จะว&งไวMในต%&แหน'งบนสด
  โดยเร,ยงจ&กซM&ยไปขว& ส%&หรบ GridLayout จะว&งเร,ยงจ&กซM&ยไปขว&
  และบนลงล'&งในช'องย'อยท,-ม,ขน&ดเท'&กน ต&มจ%&นวนแถวและคอลมน"ท,-ไดM
  ระบไวM
สรปเนRอห&ของบท
                            U
 คล&สประเภทส'วนประกอบกร&ฟฟAกท,-ส%&คญคRอ Button, Label,
  TextField, TextArea, Checkbox, Choice, List, Menu               และ
  Canvas
   Label จะแสดงขMอคว&ม ซb-งผCMใชMไม'ส&ม&รถปrอนขMอคว&มไดM แต'ส%&หรบ
    TextField ผCMใชMส&ม&รถปrอนขMอคว&มไดMย&วหนbงบรรทด ส'วน TextArea
                                                -
  ผCMใชMส&ม&รถปrอนขMอคว&มไดMหล&ยบรรทด
 Checkbox จะเปJนช'องใหMผCMใชMเลRอกหรRอไม'เลRอกโดยส&ม&รถเลRอกไดMหล&ย

  ช'องพรMอมกน ซb-งจะแตกต'&งจ&ก CheckboxGroup ท,-จะส&ม&รถเลRอกไดM
  เพ,ยงช'องเด,ยวเท'&นUน
 Choice จะแสดงร&ยก&รท,-ถCกเลRอกเพ,ยงร&ยก&รเด,ยว โดยจะแสดงหล&ย

  ร&ยก&รเมR-อผCMใชMคล7กเม&ส"เท'&นUน ซb-งจะแตกต'&งจ&ก List ท,จะส&ม&รถ
                                                            -
  แสดงไดMหล&ยร&ยก&รพรMอมกน
สรปเนRอห&ของบท
                           U
 คล&สท,-จะน%&ม&ใชMในก&รแสดงแถบเมนCและเมนCยอยคRอ MenuBar, Menu
                                           '
  และ MenuItem
 คล&ส Font และ Color จะถCกน%&ม&ใชMในกรณ,ทตMองก&รระบคณลกษณะ
                                          ,-
  ฟอนต"และส,ของตวใส'สวนประกอบกร&ฟฟAกและส'วนประกอบกร&ฟฟAก
                     '
 ก&รสรM&งภ&พกร&ฟฟAกในภ&ษ&จ&ว&จะท%&ไดMโดยก&รสรM&งคล&สท,-เปJนส'วน
  กร&ฟฟAก ซb-งสRบทอดม&จ&กคล&ส Canvas แลMว override เมธอด paint()
 คล&ส Graphics จะม,เมธอดในก&รว&ดรCปทรงกร&ฟฟAกต'&งๆหล&ยเมธอด

 คล&สในแพคเก<จ javax.swing จะถCกน%&ม&ใชMในก&รสรM&ง GUI คลM&ยกบ
  java.awt แต'จะม,แบบ Look and Feel ท,-เหมRอนกนในทกแพลตฟอร"ม โดย
  ไม'ขนอยCกบแพลตฟอร"มท,น%&ไปใชMง&น
      bU '             -
แบบฝyกหด
 ขMอท,- 1
    •   จ&กโปรแกรมจ%&ลองระบบธน&ค&ร ใหMทดลองเข,ยน GUI โดยใชMแพคเก<จ java.awt ท,-
        ท%&หนM&ท,-เปJนส'วนต7ดต'อกบผCMใชM (User Interface) ใหMพนกง&นของธน&ค&รส&ม&รถ
        เร,ยกดCร&ยชRอลCกคM& บญช,ยอดเง7น และม,ฟงก"ชนในก&รฝ&กและถอนเง7นไดM
                     -                             {


 ขMอท,- 2
    •   ทดลองปรบปรง GUI ดงกล'&วโดยใชMแพคเก<จ Swing

Weitere ähnliche Inhalte

Was ist angesagt?

พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาJK133
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : ThreadIMC Institute
 
พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาThanachart Numnonda
 
Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionIMC Institute
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionIMC Institute
 
Java Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletJava Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletIMC Institute
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาSarocha Makranit
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา CWarawut
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดThanachart Numnonda
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาKukkik Kanya
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานNookky Anapat
 
Java script เบื้องต้น
Java script เบื้องต้นJava script เบื้องต้น
Java script เบื้องต้นSamart Phetdee
 
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)Visaitus Palasak
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาT'tle Tanwarat
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็มJitti Nut
 
เครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซีเครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซีเทวัญ ภูพานทอง
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอchupong roddee
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นPp'dan Phuengkun
 
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีNattapon
 

Was ist angesagt? (20)

พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Java Programming [12/12] : Thread
Java Programming [12/12] : ThreadJava Programming [12/12] : Thread
Java Programming [12/12] : Thread
 
พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวา
 
Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : Introduction
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
ภาษา C#
ภาษา C#ภาษา C#
ภาษา C#
 
Java Programming [10/12]: Java Applet
Java Programming [10/12]: Java AppletJava Programming [10/12]: Java Applet
Java Programming [10/12]: Java Applet
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
การเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา Cการเขียนฟังก์ชั่นในภาษา C
การเขียนฟังก์ชั่นในภาษา C
 
Java Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาดJava Programming: การจัดการกับข้อผิดพลาด
Java Programming: การจัดการกับข้อผิดพลาด
 
บทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวาบทที่ 2 พื้นฐานภาษาจาวา
บทที่ 2 พื้นฐานภาษาจาวา
 
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐานการเขียนคำสั่งควบคุมขั้นพื้นฐาน
การเขียนคำสั่งควบคุมขั้นพื้นฐาน
 
Java script เบื้องต้น
Java script เบื้องต้นJava script เบื้องต้น
Java script เบื้องต้น
 
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Reference :: Java :: เต็ม
 Reference :: Java :: เต็ม Reference :: Java :: เต็ม
Reference :: Java :: เต็ม
 
เครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซีเครื่องหมายและการดำเนินการในภาษาซี
เครื่องหมายและการดำเนินการในภาษาซี
 
งานนำเสนอ
งานนำเสนองานนำเสนอ
งานนำเสนอ
 
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้นคลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
คลาสและการเขียนโปรแกรมเชิงวัตถุเบื้องต้น
 
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซีใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
ใบความรู้ที่ 1 ความรู้พื้นฐานโปรแกรมภาษาซี
 

Andere mochten auch (16)

Java awt
Java awtJava awt
Java awt
 
java swing tutorial for beginners(java programming tutorials)
java swing tutorial for beginners(java programming tutorials)java swing tutorial for beginners(java programming tutorials)
java swing tutorial for beginners(java programming tutorials)
 
Awt
AwtAwt
Awt
 
Java Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิกJava Programming: การจัดการกับเหตุการณ์กราฟิก
Java Programming: การจัดการกับเหตุการณ์กราฟิก
 
Java Generics for Dummies
Java Generics for DummiesJava Generics for Dummies
Java Generics for Dummies
 
Java Generics
Java GenericsJava Generics
Java Generics
 
Java Generics
Java GenericsJava Generics
Java Generics
 
java Jdbc
java Jdbc java Jdbc
java Jdbc
 
Java Swing
Java SwingJava Swing
Java Swing
 
Swing and AWT in java
Swing and AWT in javaSwing and AWT in java
Swing and AWT in java
 
Java generics
Java genericsJava generics
Java generics
 
java swing
java swingjava swing
java swing
 
JDBC – Java Database Connectivity
JDBC – Java Database ConnectivityJDBC – Java Database Connectivity
JDBC – Java Database Connectivity
 
Gui programming (awt)
Gui programming (awt)Gui programming (awt)
Gui programming (awt)
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivity
 
Jdbc Ppt
Jdbc PptJdbc Ppt
Jdbc Ppt
 

Ähnlich wie Java AWT

Java Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User InterfaceJava Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User InterfaceIMC Institute
 
20100831 wordpress-extension
20100831 wordpress-extension20100831 wordpress-extension
20100831 wordpress-extensionpornpimolc
 
20100831 wordpress-extension
20100831 wordpress-extension20100831 wordpress-extension
20100831 wordpress-extensionAree Taylor
 
อยากเขียนโปรแกรมสักตัว เล่ม 1
อยากเขียนโปรแกรมสักตัว เล่ม 1อยากเขียนโปรแกรมสักตัว เล่ม 1
อยากเขียนโปรแกรมสักตัว เล่ม 1Thinnakrit Knoo-Aksorn
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
0 syllabus
0 syllabus0 syllabus
0 syllabuskorakate
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]twatfangmin
 
โปรแกรมต่อใบประกอบครู
โปรแกรมต่อใบประกอบครูโปรแกรมต่อใบประกอบครู
โปรแกรมต่อใบประกอบครูWanvipa TOey
 
20100903 joomla-book-library-extension
20100903 joomla-book-library-extension20100903 joomla-book-library-extension
20100903 joomla-book-library-extensionBoonlert Aroonpiboon
 
โครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีโครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีmcf_cnx1
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาSaranporn Rungrueang
 
รายงาน คอม
รายงาน คอมรายงาน คอม
รายงาน คอมNooLuck
 

Ähnlich wie Java AWT (20)

Java Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User InterfaceJava Programming [5/12] : Build Graphical User Interface
Java Programming [5/12] : Build Graphical User Interface
 
20100831 wordpress-extension
20100831 wordpress-extension20100831 wordpress-extension
20100831 wordpress-extension
 
20100831 wordpress-extension
20100831 wordpress-extension20100831 wordpress-extension
20100831 wordpress-extension
 
Wordpress.org Extension
Wordpress.org ExtensionWordpress.org Extension
Wordpress.org Extension
 
WebGIS
WebGISWebGIS
WebGIS
 
อยากเขียนโปรแกรมสักตัว เล่ม 1
อยากเขียนโปรแกรมสักตัว เล่ม 1อยากเขียนโปรแกรมสักตัว เล่ม 1
อยากเขียนโปรแกรมสักตัว เล่ม 1
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Handbook flash8
Handbook flash8Handbook flash8
Handbook flash8
 
Docflash8
Docflash8Docflash8
Docflash8
 
Hanfbookflash8
Hanfbookflash8Hanfbookflash8
Hanfbookflash8
 
0 syllabus
0 syllabus0 syllabus
0 syllabus
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]
 
โปรแกรมต่อใบประกอบครู
โปรแกรมต่อใบประกอบครูโปรแกรมต่อใบประกอบครู
โปรแกรมต่อใบประกอบครู
 
20100903 joomla-book-library-extension
20100903 joomla-book-library-extension20100903 joomla-book-library-extension
20100903 joomla-book-library-extension
 
โครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีโครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎี
 
Pbl2
Pbl2Pbl2
Pbl2
 
Doc1
Doc1Doc1
Doc1
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
รายงาน คอม
รายงาน คอมรายงาน คอม
รายงาน คอม
 
คู่มือ E- plan
คู่มือ E- planคู่มือ E- plan
คู่มือ E- plan
 

Mehr von Thanachart Numnonda

Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thanachart Numnonda
 
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขThanachart Numnonda
 
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยThanachart Numnonda
 
Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Thanachart Numnonda
 
How would cloud computing Effect to Software Industry?
How would cloud computing  Effect to Software Industry?How would cloud computing  Effect to Software Industry?
How would cloud computing Effect to Software Industry?Thanachart Numnonda
 
Impact of cloud computing to Asian IT Industry
Impact of cloud computing  to Asian IT IndustryImpact of cloud computing  to Asian IT Industry
Impact of cloud computing to Asian IT IndustryThanachart Numnonda
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่Thanachart Numnonda
 
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]Thanachart Numnonda
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่Thanachart Numnonda
 
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย Thanachart Numnonda
 
Cloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆCloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆThanachart Numnonda
 
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทยThanachart Numnonda
 
บทความ Google vs. Android
บทความ Google vs. Android  บทความ Google vs. Android
บทความ Google vs. Android Thanachart Numnonda
 
Technology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryTechnology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryThanachart Numnonda
 
อยากอยู่ 110 ปี
อยากอยู่ 110 ปี อยากอยู่ 110 ปี
อยากอยู่ 110 ปี Thanachart Numnonda
 
Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)Thanachart Numnonda
 

Mehr von Thanachart Numnonda (20)

Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021Thailand Digital Industry Survey Result 2021
Thailand Digital Industry Survey Result 2021
 
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุขประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
ประวัติ (ศาสตร์) อันแสนสุขของ แถมสุข
 
Planning on Mobile Strategy
Planning on Mobile StrategyPlanning on Mobile Strategy
Planning on Mobile Strategy
 
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทยข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
ข้อบังคับ สมาคมสถาปนิกเทคโนโลยีสารสนเทศประเทศไทย
 
Software Trends Towards AEC 2015
Software Trends Towards AEC 2015Software Trends Towards AEC 2015
Software Trends Towards AEC 2015
 
Personal Cloud
Personal CloudPersonal Cloud
Personal Cloud
 
How would cloud computing Effect to Software Industry?
How would cloud computing  Effect to Software Industry?How would cloud computing  Effect to Software Industry?
How would cloud computing Effect to Software Industry?
 
Impact of cloud computing to Asian IT Industry
Impact of cloud computing  to Asian IT IndustryImpact of cloud computing  to Asian IT Industry
Impact of cloud computing to Asian IT Industry
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
รายชื่อผู้สมควรได้รับใบประกาศเกียรติคุณโครงการวิทยาศาสตร์สู่ความเป็นเลิศ]
 
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
พิชิตคู่แข่ง แซงหน้าด้วยไอที ยุคใหม่
 
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
ไอซีทีกับการเปลี่ยนแปลงของสังคมไทย
 
Cloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆCloud Computing กับการใช้งานในองค์กรต่างๆ
Cloud Computing กับการใช้งานในองค์กรต่างๆ
 
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
3G กับอนาคต ธุรกิจแอพพลิเคชันในเมืองไทย
 
บทความ Google vs. Android
บทความ Google vs. Android  บทความ Google vs. Android
บทความ Google vs. Android
 
IT trends for co-creation
IT trends for co-creationIT trends for co-creation
IT trends for co-creation
 
Technology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software IndustryTechnology Trends & The Impact for Software Industry
Technology Trends & The Impact for Software Industry
 
อยากอยู่ 110 ปี
อยากอยู่ 110 ปี อยากอยู่ 110 ปี
อยากอยู่ 110 ปี
 
Open
OpenOpen
Open
 
Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)Intermediate Java Programming Language (in Thai)
Intermediate Java Programming Language (in Thai)
 

Java AWT

  • 2. วตถประสงค"  แนะน%&ส'วนประกอบท,-ส%&คญของ JFC (Java Foundation Class)  แนะน%&คล&สและอ7นเตอร"เฟสท,-ส%&คญในแพคเก<จ java.awt  น7ย&มคว&มหม&ยของตวใส'สวนประกอบกร&ฟฟAก (Container) ส'วน ' ประกอบกร&ฟฟAก (Graphical Component) และรCปแบบก&รจดว&งผง (Layout Manager)  แนะน%&คล&สท,เปJนตวใส'ส'วนประกอบกร&ฟฟAก และคล&สท,-เปJนส'วน - ประกอบกร&ฟฟAกแบบต'&งๆ  อธ7บ&ยว7ธก&รใส'ส'วนประกอบกร&ฟฟAกลงในตวใส'สวนประกอบกร&ฟฟAก , '  แนะน%&ว7ธก&รจดว&งผงแบบ FlowLayout,BorderLayout , และ GridLayout
  • 3. วตถประสงค"  อธ7บ&ยก&รสรM&งเมนCโดยใชMคล&สในแพคเก<จ java.awt  อธ7บ&ยก&รจดก&รกบรCปแบบของตวอกขระ ส, และก&รจดก&รกบคณ ลกษณะอR-นๆของส'วนประกอบกร&ฟฟAก  อธ7บ&ยก&รจดว&งผง GUI ท,-ม,คว&มซบซMอน  แนะน%&แพคเก<จ javax.swing และคล&สต'&งๆท,-ม,อยC'ในแพคเก<จ
  • 4. Java Foundation Class  ระบบปฏ7บต7ก&รส'วนใหญ'จะม,ส'วนต7ดต'อกบผCMใชMเปJนแบบกร&ฟฟAก (Graphical User Interface เร,ยกย'อว'& GUI) ทUงน,เนR-องจ&กใชMง&นง'&ยกว'& U  ภ&ษ&จ&ว&จะสนบสนนก&รพฒน&โปรแกรม GUI ท,ส&ม&รถใชMง&นไดMหล&ย - แพลตฟอร"ม โดยจะใชMชดค%&ส-งเด,ยวกน  Java Foundation Class (JFC) ประกอบดMวยแพคเก<จต'&งๆดงน,U • Abstract Window Toolkit (AWT) • Swing • Java 2D • Accessibility • Drag and Drop
  • 6. AWT  แพคเก<จ AWT ประกอบดMวยคล&สต'&งๆท,-เปJนประเภทส'วนประกอบกร&ฟฟAก (graphical component) เพRอน%&ไปใชMในก&รพฒน&โปรแกรม GUI -  แพคเก<จ AWT จะช'วยในก&รสรM&งโปรแกรม GUI ประเภท look and feel ท,- ขbนอยCกบแพลตฟอร"มท,ใชMง&น U ' -  ภ&ษ&จ&ว&ไดMก%&หนดแพคเก<จ AWT ขbUนไวMตงแต'โปรแกรมจ&ว&เวอร"ช-นแรก U (JDK 1.0) โดยอยC'ในแพคเก<จท,ชR-อ java.awt -  แพคเก<จ AWT จะประกอบไปดMวยคล&สและอ7นเตอร"เฟสต'&งๆเพR-อใชMในก&ร พฒน&โปรแกรม GUI
  • 7. AWT  ในแพจเกจ java.awt ม,คลาสและอ7นเตอร"เฟสท,-ส"าคญดงน,U • Component • Container • LayoutManager (อ7นเตอร"เฟส) • Graphics • Color • Font • AWTEvent
  • 9. คลาส Component  ก&รเข,ยนโปรแกรม GUI นUนจะเปJนก&รสรM&งออปเจ<คต'&งๆท,-เปJนออปเจ<ค ของคล&สท,เปJนส'วนประกอบกร&ฟฟAก -  คล&สท,-เปJนส'วนประกอบกร&ฟฟAกจะสRบทอดม&จ&กคล&สท,-ชR-อ Component  คล&สท,-เปJน subclass ของคล&ส Component จะแบ'งเปJนสองกล'มคRอ • คล&สท,-เปJนคล&สประเภท Container เปJนคล&สท,ใชMในก&รใส'สวนประกอบกร&ฟฟAก - ' ต'&งๆ • คล&สท,-เปJนส'วนประกอบกร&ฟฟAกอR-นๆ อ&ท7เช'น Button,Choice และ List เปJนตMน
  • 11. คล&สประเภท Container  โปรแกรม GUI จะตMองม,ก&รสรM&งออปเจ<คของคล&สประเภท Container อย'&ง นMอยหนbงออปเจ<คขbUนม&ก'อน เพR-อใชMในก&รใส'ออปเจ<คของคล&สท,-เปJนส'วน - ประกอบกร&ฟฟAกอR-นๆ  คล&สประเภท Container ท,-อยCในแพคเก<จ AWT ม,ดงน,U ' • Frame • Panel • Dialog • Applet  คล&สประเภท Container เปJนคล&สท,-สRบทอดม&จ&กคล&สท,-ชR-อ Component
  • 12. คล&ส Container  คล&สท,-ชR-อ ContainerเปJนคล&สแบบ abstract ซb-งเร&ไม'ส&ม&รถท,-จะ สรM&งออปเจ<คของคล&สดงกล'&วไดM แต'จะตMองสรM&งออปเจ<คของคล&สอR-นๆท,- สRบทอดม&จ&กคล&สท,ชR-อ Container แทน -  คล&สท,-ชR-อ Container จะม,เมธอดท,ชR-อ add()ท,-ใชMในก&รใส'ส'วนประกอบ - กร&ฟฟAกอR-นๆ เมธอดน,จะม,รปแบบท,ส%&คญดงน,U U C - • void add (Component c) • void add (Component c,int position)
  • 13. คลาส Frame  เป$นคลาสทส%บทอดมาจากคลาสท,ชR-อ Window -  ออปเจ<คของคล&ส Frame จะประกอบดMวย title bar, resizable corner, icon และ menu bar
  • 14. คลาส Frame  คล&ส Frame จะม,รปแบบของ constructor ท,ส%&คญดงน,U C - • public Frame() • public Frame(String title)  คล&ส Frame จะม,เมธอดท,เก,-ยวขMองกบก&รปรบขน&ดของเฟรมดงน,U - • boolean isResizable() • void setResizable(boolean canResize)
  • 15. ตวอยางโปรแกรมแสดง Frame import java.awt.*; public class FrameSample { private Frame fr; public void init() { fr = new Frame("Frame Sample"); fr.setSize(200,150); fr.show(); } ผลลพธ"ทไดMจ&กก&รรนโปรแกรม ,- public static void main(String args[]) { FrameSample obj = new FrameSample(); obj.init(); } }
  • 16. อธ7บ&ยตวอยางโปรแกรม  ค"าสง fr = new Frame(“Frame Sample”); เป$นค"าสงท,-ใชMในก&ร สรางออปเจคของคล&ส Frame  เมธอด setSize()เป$นเมธอดทใชในการก"าหนดขนาดของ Frame  เมธอด show() เป$นเมธอดท,-ใชMในก&รแสดง Frame ท,-สรM&งไวM
  • 17. คลาส Button  Button เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,-แสดงเปJนปiม โดยจะม, - ขMอคว&ม (label) ปร&กฎอยC'บนปiม  Button เปJนคล&สท,สRบทอดม&จ&กคล&สท,-ชR-อ Component -  Constructor ของคล&ส Button ม,รปแบบดงน,U C • public Button() • public Button(String label)  เมธอดท,-ส%&คญในก&รจดก&รกบขMอคว&มม,ดงน,U • public void setLabel(String label) • public String getLabel()
  • 18. ตวอยางโปรแกรมแสดง Frame ท,-ม, Button import java.awt.*; public class ButtonSample { private Frame fr; private Button bn1; public void init() { fr = new Frame("Button Sample"); bn1 = new Button("Submit"); fr.add(bn1); fr.setSize(200,150); ผลลพธ"ทไดMจ&กก&รรนโปรแกรม ,- fr.show(); } public static void main(String args[]) { ButtonSample obj = new ButtonSample(); obj.init(); } }
  • 19. ก&รจดว&งผงของส'วนประกอบกร&ฟฟAก  โปรแกรม GUI ของภ&ษ&จ&ว&จะจดว&งส'วนประกอบกร&ฟฟAกต'&งๆลงใน ออปเจ<คของคล&สประเภท Container โดยอตโนมต7  LayoutManager เปJนอ7นเตอร"เฟสท,ใชในก&รก%&หนดว7ธก&รจดว&งผงส'วน - , ประกอบกร&ฟฟAก  คล&สท,- implements อ7นเตอร"เฟสท,-ชR-อ LayoutManager เพR-อใชMเปJนตว จดว&งผงของส'วนประกอบกร&ฟฟAกม,ทUงหมด 5 คล&สคRอ • BorderLayout • FlowLayout • GridLayout • CardLayout • GridBagLayout  เมธอดท,-ชR-อ setLayout() ใชMในก&รก%&หนดก&รว&งผง
  • 20. BorderLayout  Frame โดยทวไปจะถCกก%&หนดใหMมตวจดว&งผงเป$นแบบ BorderLayout ,  Frame ท,ม,ตวจดว&งผงเปJนแบบ BorderLayout จะท%&ใหMสามารถวางสวน - ประกอบกราฟฟกไดมากทส/ด 5 ออปเจ<คตามต"าแหนงทศตางๆของ Frame ค%อ ทศเหน%อ (NORTH) ทศใต (SOUTH) ทศตะวนออก (EAST) ทศตะวน ตก (WEST) และตรงกลาง (CENTER)  ใชค"าสง new BorderLayout() ในการสรางตวจดวางผงแบบน2
  • 21. BorderLayout  ค"าสงในการใสสวนประกอบกราฟฟกค%อเมธอด add() แตจะตองมการระบ/ ต"าแหนงทศทตองการวางสวนประกอบ  ตวอย'&งเชน fr.add(bn1,BorderLayout.NORTH)  หากไมระบ/ต"าแหนงทศ สวนประกอบจะถCกใสไวตรงกลาง
  • 22. ตวอยางโปรแกรม import java.awt.*; public class BorderLayoutSample { private Frame fr; private Button bn1, bn2, bn3, bn4, bn5; public void init() { fr = new Frame("Button Sample"); bn1 = new Button("B1"); bn2 = new Button("B2"); bn3 = new Button("B3"); bn4 = new Button("B4"); bn5 = new Button("B5"); fr.add(bn1,BorderLayout.NORTH); fr.add(bn2,BorderLayout.SOUTH); fr.add(bn3,BorderLayout.EAST);
  • 23. ตวอยางโปรแกรม fr.add(bn4,BorderLayout.WEST); fr.add(bn5,BorderLayout.CENTER); fr.setSize(200,150); fr.show(); } public static void main(String args[]) { BorderLayoutSample obj = new BorderLayoutSample(); obj.init(); } } ผลลพธ"ทไดMจ&กก&รรนโปรแกรม ,-
  • 24. FlowLayout  ตวจดว&งผงแบบ FlowLayout จะจดวางผงสวนประกอบกราฟฟกจากซาย ไปขวา  ถาความกวางของ Contanier ไมพอ ตวจดว&งผงจะน"าสวนประกอบกราฟฟก ทเหล%อลงไปในต"าแหนงถดไปดานลาง  Frame ส&ม&รถใชตวจดวางผงแบบน2ไดM โดยเรยกใชMเมธอด setLayout() แลวสรางตวจดวางผงโดยใชค"าสง new FlowLayout() ดงน,U fr.setLayout(new FlowLayout());
  • 25. ตวอยางโปรแกรม import java.awt.*; public class FlowLayoutSample { private Frame fr; private Button bn1, bn2, bn3; public void init() { fr = new Frame("Button Sample"); fr.setLayout(new FlowLayout()); bn1 = new Button("Submit"); bn2 = new Button("Cancel"); bn3 = new Button("Exit"); fr.add(bn1); fr.add(bn2); fr.add(bn3);
  • 26. ตวอยางโปรแกรม fr.setSize(200,150); fr.show(); } public static void main(String args[]) { FlowLayoutSample obj = new FlowLayoutSample(); obj.init(); } } ผลลพธ"ทไดMจ&กก&รรนโปรแกรม ,-
  • 27. GridLayout  จะแบง Container เป$นชองยอยๆขนาดเทากน  Frame สามารถใชMตวจดวางผงแบบน2ได โดยเร,ยกใชMเมธอด setLayoutแลวสรางตวจดวางผงโดยใชค"าสง new GridLayout(row,col) ซb-งจะตองระบ/จ"านวนแถวและคอลมน4ทตองการ แบงชองยอยดMวย ดงน,U fr.setLayout(new GridLayout(3,2)); • จะแบง Container เป$น 6 ชองยอย ทม 3 แถวๆละ 2 คอลมน4  ใชเมธอด add() ในการใสสวนประกอบกราฟฟกลงในแตละชองยอย โดยจะ ใสเรยงจากซายไปขวาและบนลงลาง
  • 28. ตวอยางโปรแกรม import java.awt.*; public class GridLayoutSample { private Frame fr; private Button bn1, bn2, bn3, bn4, bn5; public void init() { fr = new Frame("Button Sample"); fr.setLayout(new GridLayout(3,2)); bn1 = new Button("B1"); bn2 = new Button("B2"); bn3 = new Button("B3"); bn4 = new Button("B4"); bn5 = new Button("B5");
  • 29. ตวอยางโปรแกรม fr.add(bn1); fr.add(bn2); fr.add(bn3); fr.add(bn4); fr.add(bn5); fr.pack(); fr.setVisible(true); } public static void main(String args[]) { GridLayoutSample obj = new GridLayoutSample(); obj.init(); } } ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
  • 30. ค"าอธบายโปรแกรม  ค"าสง fr.pack(); • จะปรบขนาดทเหมาะสมใหกบ Frame fr.setVisible(true); • เป$นการแสดง Frame เชนเดยวกบเมธอด show()
  • 31. สวนประกอบกราฟฟกทส"าคญในแพคเก<จ AWT  Button  Label  TextField  TextArea  Checkbox  Choice  List  Canvas
  • 32. คล&ส Label  ค%อสวนประกอบกราฟฟกทใชแสดงขอความยาวหน6งบรรทด ซb-งผCMใชMไม' ส&ม&รถปrอนขMอคว&มเขM&ไปไดM  Constructor ของคล&ส Label ท,-ส%&คญม,ดงน,U • public Label(String text) • public Label(String text,int align)  เราสามารถทจะก"าหนดหร%อเปลยนขอความของ Label ไดโดยเรยกใช เมธอด setText(String text)
  • 33. คล&ส TextField  ค%อสวนประกอบกราฟฟกเพ%อใหผใชป7อนขอความยาวหน6งบรรทดได  Constructor ของคล&ส TextField ท,ส%&คญม,ดงน,U - • public TextField() • public TextField(int col) • public TextField(String text) • public TextField(String text, int col)  เราสามารถทจะก"าหนดหร%อเปลยนขอความโดยใช เมธอดsetText(String text)  เมธอด setEditable(boolean b)เปJนเมธอดท,ใชMเพRอก"าหนดให - - TextField สามารถอานไดอยางเดยว โดยจะตMองม,ก&รส'ง argument เป$น false
  • 34. ตวอยางโปรแกรม import java.awt.*; public class TextFieldDemo { private Frame fr; private Label l; private TextField tf; public void init() { fr = new Frame("TextField Demo"); l = new Label("Name: "); tf = new TextField("Thanisa", 15); fr.setLayout(new FlowLayout());
  • 35. ตวอยางโปรแกรม fr.add(l); fr.add(tf); fr.pack(); fr.show(); } public static void main(String args[]) { TextFieldDemo obj = new TextFieldDemo(); obj.init(); } } ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
  • 36. คล&ส TextArea  ค%อสวนประกอบกราฟฟกเพ%อใหผใชป7อนขอความได และส&ม&รถมจ"านวน บรรทดไดหลายบรรทดตามทระบ/  Constructor ของคล&ส TextArea ท,-ส%&คญม,ดงน,U • public TextArea() • public TextArea(String str) • public TextArea(int row,int col) • public TextArea(String str,int row,int col) • public TextArea(String str,int row,int col,int scrollbar)
  • 37. ตวอยางโปรแกรมแสดง TextArea import java.awt.*; public class TextAreaDemo { private Frame fr; private TextArea ta; public void init() { fr = new Frame("TextArea Demo"); ta = new TextArea("Text Area",5,10); fr.setLayout(new FlowLayout()); fr.add(ta); fr.setSize(200,150); fr.setVisible(true); ผลลพธ"ทไดMจ&กก&รรนโปรแกรม ,- } public static void main(String args[]) { TextAreaDemo obj = new TextAreaDemo(); obj.init(); } }
  • 38. คล&ส Checkbox และ CheckboxGroup  ค%อสวนประกอบกราฟฟกทใหผใชเล%อกหร%อไมเล%อกชองตางๆได โดย ส&ม&รถเลRอกไดMหล&ยช'องพรMอมๆกน  มขอความ (Label) อยขางๆ  Constructor ของคล&ส Checkbox ท,ส%&คญม,ดงน,U - • public Checkbox(String label) • public Checkbox(String label, boolean state)  ถM&ตMองก&รใหMอยC'ในรCปแบบของ radio button ซbงจะส&ม&รถเลRอกไดMเพ,ยง 1 - ช'องเท'&นUน จะตMองระบ/ใหออปเจคของคล&ส Checkbox อยในกล/มของ ออปเจคของคล&ส CheckboxGroup
  • 39. ตวอยางโปรแกรมแสดง Checkbox import java.awt.*; public class CheckboxDemo { public static void main(String args[]) { Frame fr = new Frame("Checkbox Demo"); Checkbox c1 = new Checkbox("Visual Basic"); Checkbox c2 = new Checkbox("C++",false); Checkbox c3 = new Checkbox("Java",true); fr.setLayout(new FlowLayout()); fr.add(c1); fr.add(c2); fr.add(c3); fr.pack(); fr.show(); ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม } }
  • 40. ตวอยางโปรแกรมแสดง CheckboxGroup import java.awt.*; public class CheckboxGroupDemo { public static void main(String args[]) { Frame fr = new Frame("CheckboxGroup Demo"); CheckboxGroup cg = new CheckboxGroup(); Checkbox c1 = new Checkbox("One", true,cg); Checkbox c2 = new Checkbox("Two", false,cg); Checkbox c3 = new Checkbox("Three", cg, true); fr.setLayout(new GridLayout(3,1)); fr.add(c1); fr.add(c2); ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม fr.add(c3); fr.pack(); fr.show(); } }
  • 41. คล&ส Choice  คล&ส Choice เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,-เปJนร&ยก&รใหMผCMใชM - ส&ม&รถเลRอกไดM  คล&ส Choice จะแสดงร&ยก&รปร&กฏใหMเห<นเฉพ&ะร&ยก&รท,เลRอกเพ,ยง - ร&ยก&รเด,ยว แต'จะแสดงร&ยก&รทUงหมดห&กม,ก&รคล7กเม&ส"  Constructor ของคล&ส Choice ท,ส%&คญม,ดงน,U - • public Choice()  เมธอด addItem() เป$นเมธอดทใชส"าหรบใสรายการลงในออปเจค choice  เมธอด select(int pos) หร%อ select(String str) เปJนเมธอดท,- ใชMในก&รเล%อกใหแสดงรายการทต"าแหนงหร%อขอความใดขอความหน6งได
  • 42. ตวอยางโปรแกรมแสดง Choice import java.awt.*; public class ChoiceDemo { public static void main(String args[]) { Frame fr = new Frame("Choice Demo"); Choice c = new Choice(); c.addItem("New Zealand"); c.addItem("Thailand"); c.addItem("USA"); ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม c.add("Japan"); c.select("Thailand"); fr.add(c); fr.pack(); fr.show(); } }
  • 43. คล&ส List  List เป$นคลาสทใชสรางออปเจคทเป$นสวนประกอบกราฟฟกเพ%อใหผใช สามารถเล%อกรายการคลายกบ Choice แตจะแตกตางกนตรงท List จะ แสดงรายการหลายรายการตามจ"านวนแถวทระบ/  Constructor ของคล&ส List ท,ส%&คญม,ดงน,U - • public List() • public List(int row) • public List(int row,boolean multipleMode)  เมธอด add()เป$นเมธอดทใชในการใสรายการลงไปในออปเจคของคล&ส List
  • 44. ตวอยางโปรแกรมแสดง List import java.awt.*; public class ListDemo { private Frame fr; private List l; public void init() { fr = new Frame("List Demo"); l = new List(3,true); l.add("One"); ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม l.add("Two"); l.add("Three"); fr.add(l); fr.pack(); fr.setVisible(true); } public static void main(String args[]) { ListDemo obj = new ListDemo(); obj.init(); }
  • 45. ก&รสรM&งเมนC  เมนCเปJนออปเจ<คของคล&สท,สRบทอดม&จ&กคล&สท,-ชR-อ MenuComponent -  คล&สท,-สบทอดม&จ&กคล&ส MenuComponent ท,ส%&คญม,ดงน,U R - • MenuBar เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,เก<บกล'มของออปเจ<คของคล&ส - - Menu ซb-งจะปร&กฏเปJนแถบเมนCโดยออปเจ<คของคล&สน,UจะตMองม,ออปเจ<คของคล&ส Frame ท,คC'กน - • Menu เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,เก<บกล'มของออปเจ<คของคล&ส - - MenuItem และตวแยกร&ยก&ร (separator) • MenuItem เปJนคล&สท,ใชMในก&รสรMรM &งออปเจ<คท,เปJนร&ยก&ร - - • CheckboxMenuItem เปJนคล&สท,ใชMในก&รสรM&งออปเจ<คท,เปJนร&ยก&รโดยจะม, - - เครR-องหม&ยถCกท,จะแสดงขbUนเมR-อร&ยก&รน,UถCกเลRอก -
  • 47. คล&ส MenuBar  คRอแถบของเมนทจะอยCตรงส'วนบนของคล&สประเภท Container เช'น ' Frame (ระบบปฏบตการบางประเภทอาจจะไมแสดงแถบของเมน หากไมม รายการในเมน)  Constructor ของคล&ส MenuBar ท,ส%&คญม,ดงน,U - • public MenuBar()  เราสามารถทจะใสออปเจคของคล&ส MenuBar ลงใน Container ไดโดยใช เมธอด setMenuBar()  คลาส MenuBar ส%บทอดมาจากคลาส MenuComponent
  • 48. ตวอยางโปรแกรมแสดง MenuBar import java.awt.*; public class MenuBarDemo { private Frame fr; private MenuBar mb; public void init() { fr = new Frame("MenuBar Demo"); mb = new MenuBar(); fr.setMenuBar(mb); fr.setSize(200,150); ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม fr.setVisible(true); } public static void main(String args[]) { MenuBarDemo md = new MenuBarDemo(); md.init(); } }
  • 49. คล&ส Menu  คRอรายการทแสดงบนแถบของเมน  Constructor ของคล&ส Menu ท,ส%&คญม,ดงน,U - • public Menu() • public Menu(String label) • public Menu(String label,boolean tearOff)  เราสามารถก"าหนดหร%อเปลยนช%อรายการในออปเจคของคล&ส Menu โดย ใชเมธอด setLabel(String label)  เมธอด add() ในคลาส MenuBar ใชในการใสออปเจคของคล&ส Menu ลง ไปในออปเจ<คของคล&ส MenuBar แต'ถM&ออปเจคของคล&ส Menu เป$น รายการ Help เราจะใชเมธอด setHelpMenu() ในการใสออปเจคแทน
  • 50. ตวอยางโปรแกรมแสดง Menu import java.awt.*; public class MenuDemo { private Frame fr; private MenuBar mb; private Menu m1,m2,m3,m4; public void init() { fr = new Frame("Menu Demo"); mb = new MenuBar(); m1 = new Menu("File"); m2 = new Menu("Edit"); m3 = new Menu("View"); m4 = new Menu("Help");
  • 51. ตวอยางโปรแกรมแสดง Menu fr.setMenuBar(mb); mb.add(m1); mb.add(m2); mb.add(m3); ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม mb.setHelpMenu(m4); fr.setSize(200,150); fr.setVisible(true); } public static void main(String args[]) { MenuDemo mm = new MenuDemo(); mm.init(); } }
  • 52. คล&ส MenuItem  ค%อรายการยอยทอยในออปเจคของคล&ส Menu  Constructor ของคล&ส MenuItem ท,-ส%&คญม,ดงน,U • public MenuItem() • public MenuItem(String label) • public MenuItem(String label,MenuShortcut s)  เราสามารถทจะใสออปเจคของคล&ส MenuItem ลงไปในออปเจคของ คล&ส Menu ไดMโดยใชเมธอด add()  เราสามารถทจะก"าหนด Shortcut ของรายการทอยในออปเจคของ คล&สMenuItem ไดMโดยใชMออปเจ<คของคล&ส MenuShortcut  Constructor ของคล&ส MenuShortcut ท,ส%&คญม,ดงน,U - • public MenuShortcut(int key)
  • 53. ขUนตอนการสรางเมนC  สรางออปเจคของคล&ส MenuBar แลวใสลงไปในออปเจคของคล&ส ประเภท Container เชน Frame  สรางออปเจคของคล&ส Menu แลวใสลงไปในออปเจคของคล&ส MenuBar โดยท,ส&ม&รถสรM&งออปเจ<คของคล&ส Menu ไดMม&กกว'&หน6ง - ออปเจค  สรางออปเจคของคล&ส MenuItem แลวใสลงไปในออปเจคของคล&ส Menu โดยท,-ส&ม&รถสรM&งออปเจ<คของคล&ส MenuItem ไดMม&กกว'&หน6ง ออปเจค
  • 54. ตวอยางโปรแกรมแสดง MenuItem import java.awt.*; public class MenuItemDemo { private Frame fr; private MenuBar mb; private Menu m1,m2,m3,m4; private MenuItem mi1,mi2,mi3,mi4; private MenuShortcut ms1; public void init() { fr = new Frame("MenuItem Demo"); mb = new MenuBar(); m1 = new Menu("File"); m2 = new Menu("Edit"); m3 = new Menu("View"); m4 = new Menu("Help"); fr.setMenuBar(mb); mb.add(m1); mb.add(m2); mb.add(m3); mb.setHelpMenu(m4);
  • 55. ตวอยางโปรแกรมแสดง MenuItem char key = 'N'; ms1 = new MenuShortcut(key); mi1 = new MenuItem("New",ms1); mi2 = new MenuItem("Open"); mi3 = new MenuItem("Save"); mi4 = new MenuItem("Exit"); m1.add(mi1); m1.add(mi2); m1.addSeparator(); m1.add(mi3); m1.addSeparator(); ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม m1.add(mi4); fr.setSize(200,200); fr.setVisible(true); } public static void main(String args[]) { MenuItemDemo mid= new MenuItemDemo(); mid.init(); } }
  • 56. คล&ส CheckboxMenuItem  ค%อรายการเมนทมเคร%องหมายระบ/วารายการน2ถกเล%อก  Constructor ของคล&ส CheckboxMenuItem ท,ส%&คญม,ดงน,U - • public CheckboxMenuItem() • public CheckboxMenuItem(String label) • public CheckboxMenuItem(String label,boolean state)  เราสามารถทจะเปลยนสถานะของออปเจคชนด CheckboxMenuItem ไดM โดยใชเมธอด setState(boolean b)
  • 57. ตวอยางโปรแกรมแสดง CheckboxMenuItem import java.awt.*; public class CheckboxMenuDemo { private Frame fr; private MenuBar mb; private Menu m1,m2,m3; private MenuItem mi; private CheckboxMenuItem cbm; public void init() { fr = new Frame("CheckboxMenuItem Demo"); mb = new MenuBar(); m1 = new Menu("File"); m2 = new Menu("Edit"); m3 = new Menu("View"); fr.setMenuBar(mb); mb.add(m1); mb.add(m2); mb.add(m3);
  • 58. ตวอยางโปรแกรมแสดง CheckboxMenuItem mi = new MenuItem("Toolbars"); cbm = new CheckboxMenuItem("Status Bar", true); m3.add(mi); m3.add(cbm); fr.setSize(200,200); fr.setVisible(true); } public static void main(String args[]) { CheckboxMenuDemo obj= new CheckboxMenuDemo(); obj.init(); } } ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
  • 59. ขUนตอนการสรางเมนCย'อย  สรางออปเจคของคล&ส MenuBar แลวใสลงไปในออปเจคของคล&ส ประเภท Container เชน Frame  สรางออปเจคของคล&ส Menu แลวใสลงไปในออปเจคของคล&ส MenuBar  สรางออปเจคของคล&ส Menu ส%&หรบเปJนเมนCยอย แลวใสลงไปในออปเจค ' ของคล&ส Menu ท,เปJนเมนCหลก -  สรางออปเจคของคล&ส MenuItem แลวใสลงไปในออปเจคของคล&ส Menu ท,-เปJนเมนCยอย '
  • 60. ตวอยางโปรแกรมแสดงเมนCยอย ' import java.awt.*; public class SubMenuDemo { private Frame fr; private MenuBar mb; private Menu m1,m2,m3, ms1; private MenuItem mi2,mi3,mi4, msi1, msi2; public void init() { fr = new Frame("SubMenuItem Demo"); mb = new MenuBar(); m1 = new Menu("File"); m2 = new Menu("Edit"); m3 = new Menu("View"); fr.setMenuBar(mb); mb.add(m1); mb.add(m2); mb.add(m3);
  • 61. ตวอยางโปรแกรมแสดงเมนCยอย ' ms1 = new Menu("New"); mi2 = new MenuItem("Open"); mi3 = new MenuItem("Save"); mi4 = new MenuItem("Exit"); m1.add(ms1); m1.add(mi2); m1.addSeparator(); m1.add(mi3); m1.addSeparator(); m1.add(mi4); msi1 = new MenuItem("Window"); msi2 = new MenuItem("Message"); ms1.add(msi1); ms1.addSeparator(); ms1.add(msi2); fr.setSize(200,200); fr.setVisible(true); }
  • 62. ตวอยางโปรแกรมแสดงเมนCยอย ' public static void main(String args[]) { SubMenuDemo obj= new SubMenuDemo(); obj.init(); } } ผลลพธ"ทไดMจ&กก&รรนโปรแกรม ,-
  • 63. ค/ณลกษณะของคลาส Component  ส'วนประกอบกร&ฟฟAกต'&งๆจะม,คณลกษณะอRนอ&ท7เช'น รCปแบบของฟอนต" - ส,ของพRUนหลงหรRอส,ของพRนหนM& (Foreground) เร&ส&ม&รถท,-จะก%&หนด U คณลกษณะของส'วนประกอบกร&ฟฟAกไดM โดยปกต7สวนประกอบกร&ฟฟAกจะ ' ใชMคณลกษณะแบบเด,ยวกบออปเจ<คประเภท Container ท,บรรจอยCเวMนแต'จะ - ' ม,ก&รก%&หนดคณลกษณะเฉพ&ะของส'วนประกอบกร&ฟฟAกนUนๆ  เมธอดท,-ใชMในก&รก%&หนดคณลกษณะของส'วนประกอบกร&ฟฟAก จะอยC'ใน คล&ส Component โดยม,เมธอดท,ส%&คญคRอ - • setFont(Font f) • setForeground(Color c) • setBackground(Color c)
  • 64. คล&ส Font  เร&ส&ม&รถสรM&งออปเจ<คของคล&ส Font เพRอใชMในก&รก%&หนดฟอนต"ไดM -  Constructor ของคล&ส Font ท,ส%&คญม,ดงน,U - • public Font(String name,int style,int size) — name ค%อช%อฟอนต4 — style ค%อรปแบบของฟอนต4 เชน Font.PLAIN,Font.BOLD, Font.ITALIC — size ค%อขนาดของฟอนต4  เราสามารถก"าหนดฟอนต4ใหกบออปเจคของคลาส Component โดยใช เมธอด setFont()
  • 65. คล&ส Color  เร&ส&ม&รถสรM&งออปเจ<คของคล&ส Color เพRอใชMในก&รก%&หนดส,ไดM -  Constructor ของคล&ส Color ท,-ส%&คญม,ดงน,U • public Color(int r,int g,int b) — โดยท,- r,g,b คRอค'&คว&มเขMมของแสงส,แดง เข,ยว และนU%&เง7น ต&มล%&ดบ  ตวอย'&งเช'น • yellow = new Color(255,255,0); • black = new Color(0,0,0);
  • 66. ตวอยางโปรแกรมแสดงคณลกษณะ import java.awt.*; public class AttributeDemo { private Frame fr; private Button bn1,bn2,bn3; public void init() { fr = new Frame("ShowAttribute"); bn1 = new Button("OK"); bn2 = new Button("Cancel"); bn3 = new Button("Help"); fr.setLayout(new FlowLayout()); fr.add(bn1); fr.add(bn2); fr.add(bn3);
  • 67. ตวอยางโปรแกรมแสดงคณลกษณะ fr.setFont(new Font("TimesRoman",Font.BOLD,16)); fr.setForeground(Color.blue); fr.setBackground(Color.green); bn2.setForeground(Color.red); fr.setSize(200,200); fr.show(); } public static void main(String args[]) { AttributeDemo ad = new AttributeDemo(); ad.init(); } } ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
  • 68. คล&ส Canvas  แพ<คเกจ AWT ม,คล&สท,-เปJนส'วนประกอบกร&ฟฟAกท,ชR-อ Canvas - ซb-งเปJน เนRอท,-ว'&งเปล'&ท,-ส&ม&รถใชMในก&รว&ดรCปกร&ฟฟAกหรRอเข,ยนขMอคว&มใดๆไดM U  คล&สน,Uจะม,เมธอดท,ชR-อ paint() - ซbงม,รปแบบดงน,U - C public void paint(Graphics g) { [statements] }  ก&รสรM&งภ&พกร&ฟฟAกในภ&ษ&จ&ว&จะท%&ไดMโดยก&รสรM&งคล&สท,-เปJนส'วน กร&ฟฟAก ซb-งสRบทอดม&จ&กคล&สท,ชR-อ Canvas แลMว override เมธอดท,-ชR-อ - paint()
  • 69. ตวอย'&งโปรแกรม import java.awt.*; public class MyCanvas extends Canvas { public void paint(Graphics g) { g.drawLine(10,10,100,100); } }
  • 70. ตวอย'&งโปรแกรม import java.awt.*; public class GUIDemo { public static void main(String args[]) { Frame fr = new Frame("Draw line"); MyCanvas mc = new MyCanvas(); fr.add(mc); fr.setSize(150,150); fr.setVisible(true); } } ผลลพธ"ท,-ไดMจ&กก&รรนโปรแกรม
  • 71. คลาส Panel  เป$นคลาสประเภท Container ท%&ใหMสามารถใสสวนประกอบกราฟฟกตางๆได  แตกตางจาก Frame ตรงทไมม title bar และไม'ม, resizable corner  Applet เป$นคลาสทส%บทอดมาจากคลาส Panel  โดยทวไปจะมตวจดการวางผงแบบ FlowLayout  สามารถทจะบรรจ/ Panel ลงใน Frame ได
  • 72. การสรางโปรแกรม GUI ทซบซอน  โดยสวนใหญ GUI จะมสวนประกอบกราฟฟกตางๆมากมาย และการวางผง อาจจะตองมผงหลายช2นทซอนกน Panel ลงไปใน Frame หร%อ Panel ตวอ%น แลวใสสวน  เราสามารถทจะบรรจ/ ประกอบกราฟฟกลงใน Panel อกทหน6ง เพ%อสราง GUI ทซบซอนข62น  เราสามารถทจะก"าหนดให Panel แตละตวมตววางผงตางชนดกนได
  • 74. ตวอยางโปรแกรมแสดง GUI ท,ซบซMอน - import java.awt.*; public class StickyPad { private Frame fr; private Panel p1, p2; private TextArea ta1, ta2; private Button bn1, bn2, bn3; public void init() { fr = new Frame("Sticky Pad"); p1 = new Panel(); p2 = new Panel(); bn1 = new Button("Submit"); bn2 = new Button("Leave"); bn3 = new Button("Return"); ta1 = new TextArea(4,40); ta2 = new TextArea(4,40);
  • 75. ตวอยางโปรแกรมแสดง GUI ท,ซบซMอน - ta1.setBackground(Color.pink); ta1.setFont(new Font("Dialog",Font.PLAIN,20)); ta2.setBackground(Color.lightGray); ta2.setFont(new Font("Dialog",Font.PLAIN,20)); p1.setLayout(new GridLayout(2,1)); p1.add(ta1); p1.add(ta2); p2.setLayout(new FlowLayout()); p2.add(bn1); p2.add(bn2); p2.add(bn3); fr.add(p1); fr.add(p2,BorderLayout.SOUTH); fr.setSize(400,300); fr.show(); }
  • 76. ตวอยางโปรแกรมแสดง GUI ท,ซบซMอน - public static void main(String args[]) { StickyPad obj = new StickyPad(); obj.init(); } }
  • 77. แพคเก<จ Swing  Swing เป$นแพคเกจส"าหรบพฒนาโปรแกรม GUI ซ6งมสวนประกอบกราฟฟก ทมากชนดกวาทมอยในแพคเกจ AWT  สวนประกอบกราฟฟกของแพคเกจ Swing จะมลกษณะทดกวาสวนประกอบ กราฟฟกของแพคเกจ AWT  สวนประกอบกราฟฟกของแพคเกจ Swing สามารถก"าหนดรปแบบของ look and feel ทท"าใหไดโปรแกรม GUI ทมรปแบบของกราฟฟกเหม%อนกนในท/ก แพลตฟอร4ม ซ6งจะแตกตางกบแพคเกจ AWT ทจะมรปแบบของกราฟฟกซ6ง ข62นอยกบ look and feel ของแตละแพลตฟอร4ม  การก"าหนด look and feel ไดเองท"าใหโปรแกรม GUI ทใชออปเจคของ แพคเกจ Swing แสดงผลไดชากวาโปรแกรม GUI ทใชออปเจคของ แพค เกจ AWT
  • 78. แพคเก<จ Swing  แพคเก<จของ Swing อยC'ในแพคเกจทช%อ javax.swing  คล&สท,-เปJนส'วนประกอบกร&ฟฟAกของแพคเก<จ Swing ทกคล&สจะสRบทอด ม&จ&กคล&ส JComponent  คล&ส JComponent จะส%บทอดม&จากคลาส Container ในแพคเก<จAWT อ,กต'อหนbง -  แพคเก<จ Swing จะม,คล&สท,-เปJนส'วนประกอบกร&ฟฟAกท,-สอดคลMองกบคล&ส ในแพคเก<จ AWT โดยคล&สเหล'&น,จะม,ชR-อขbUนตMนดMวยตวอกษร ‘J’ U
  • 80. คล&สท,เปJนสวนประกอบกราฟฟกในแพคเก<จ Swing -  คล&สท,-เปJนสวนประกอบกราฟฟกทส"าคญในแพคเก<จ Swing มดงน2 • JFrame • JPanel • JButton • JLabel • JTextField • JTextArea • JScrollbar • JToolTip
  • 81. คล&ส JFrame  แพคเก<จ Swing ม,คล&สประเภท Container ท,-แตกต'&งจ&กคล&สประเภท Container ของแพคเก<จ AWT คRอ JFrame,JDialog,JPanel และ JApplet โดยท-วไปโปรแกรม GUI ท,เปJนโปรแกรมจ&ว&ประยกต"จะใชM - Container ท,เปJนออปเจ<คของคล&ส JFrame -  คล&ส JFrame จะสRบทอดม&จ&กคล&ส Frame โดยม, constructor ท,-ส%&คญ ดงน,U • public JFrame() • public JFrame(String title)
  • 82. Panes  ออปเจคของคลาส JFrame แตกตางกบ Frame ตรงทมหนาตาง (pane) อย 4 หนาตางดงน,U • root pane • layer pane • glass pane • content pane
  • 83. เมธอด getContentPane()  เร&ไม'ส&ม&รถท,จะใส'ส'วนประกอบกร&ฟฟAกลงใน JFrame ไดMโดยตรง แต'จะ - ตMองใส'ลงในหนM&ต'&งท,-เปJน content pane แทน  เร&ส&ม&รถท,-จะเร,ยกออปเจ<คของคล&สประเภท Container ดงกล'&วม&ไดM โดยใชMเมธอดท,ชR-อ getContentPane() และส&ม&รถท,จะใส'สวนประกอบ - - ' กร&ฟฟAกลงในออปเจ<คดงกล'&วไดMโดยใชMเมธอด add()  ตวอย'&งเช'น Container c = fr.getContentPane(); c.setLayout(new BorderLayout()); c.add(bn1,BorderLayout.SOUTH);
  • 84. ตวอยางแสดงโปรแกรม GUI ท,-ใชMคล&สในแพคเก<จ Swing import java.awt.*; import javax.swing.*; public class StickyPadSwing { private JFrame fr; private JPanel p1, p2; private JTextArea ta1, ta2; private JButton bn1, bn2, bn3; public void init() { fr = new JFrame("Sticky Pad"); p1 = new JPanel(); p2 = new JPanel(); bn1 = new JButton("Submit"); bn2 = new JButton("Leave"); bn3 = new JButton("Return");
  • 85. ตวอยางแสดงโปรแกรม GUI ท,-ใชMคล&สในแพคเก<จ Swing ta1 = new JTextArea(4,40); ta2 = new JTextArea(4,40); ta1.setBackground(Color.pink); ta1.setFont(new Font("Dialog",Font.PLAIN,20)); ta2.setBackground(Color.lightGray); ta2.setFont(new Font("Dialog",Font.PLAIN,20)); p1.setLayout(new GridLayout(2,1)); p1.add(ta1); p1.add(ta2); p2.setLayout(new FlowLayout()); p2.add(bn1); p2.add(bn2); p2.add(bn3); Container c = fr.getContentPane(); c.add(p1);
  • 86. ตวอยางแสดงโปรแกรม GUI ท,-ใชMคล&สในแพคเก<จ Swing c.add(p2,BorderLayout.SOUTH); fr.setSize(400,300); fr.show(); } public static void main(String args[]) { StickyPadSwing obj = new StickyPadSwing(); obj.init(); } }
  • 88. คล&ส JComponent  สวนประกอบกราฟฟกของ Swing เพมค/ณลกษณะตางๆข62นมามาก เรา สามารถใชค/ณลกษณะเหลาน2โดยเร,ยกใชเมธอดในคลาส JComponent  เมธอด setBorder(Border bd) ใชส"าหรบก"าหนดขอบใหกบสวน ประกอบกราฟฟก  เมธอด setToolTipText(String text)ใชส"าหรบก"าหนดขอความท จะแสดงเป$น tooltip
  • 89. คณลกษณะเด'นอR-นๆ  แพคเก<จ Swing ยงม,เมธอดอR-นๆท,-ใชMในก&รก%&หนดรCปลกษณ"และ คณลกษณะเด'นของออปเจ<คท,เปJนส'วนประกอบกร&ฟฟAกต'&งๆเพ7มเต7ม - - อ&ท7เช'น • void setMnemonic(char c) หรRอ • void setMnemonic(int i) • void setIcon(Icon c)
  • 90. คล&ส LookAndFeel  แพคเก<จ Swing จะอนญ&ตใหMผCMใชMก%&หนด look and feel ของโปรแกรม GUI บนแพลตฟอร"มต'&งๆเองไดM โดยใชMคล&สท,-ชR-อ LookAndFeel  คล&ส LookAndFeel ใชMในก&รก%&หนดรCปแบบต'&งๆของส'วนประกอบ กร&ฟฟAกเช'น ฟอนต" ขน&ด ส, ก&รจดก&รกบเหตก&รณ" (Event) เปJนตMน  โดยท-วไปโปรแกรม GUI ท,-ใชMแพคเก<จ Swing จะสรM&งออปเจ<คของคล&ส UIManager ขbUนม&ตอนรนโปรแกรม เพRอตรวจสอบรCปแบบ look and feel - ของโปรแกรม GUI และเร&ส&ม&รถท,จะก%&หนดรCปแบบ look and feel ใหม' - ไดMโดยใชMเมธอด UIManager setLookAndFeel(LoodAndFeel l)
  • 91. คล&ส Dialog  คลาส Dialog เป$นคลาสทส%บทอดมาจากคลาส Window  คลาส Dialog จะท"างานอยภายใตออปเจคของคลาส Frame ท2งน2การสรางออป เจคของคลาส Dialog จะตองระบ/ออปเจคของคลาส Frame ทคกนซ6งเรยกวา เฟรมแม (parent frame) และอาจก%&หนดโหมดการท"างานใหMเปJนแบบ modal ซ6ง ผใชตองปดออปเจคของคลาส Dialog กอนจ6งจะกลบมาท"างานในออปเจคของ คลาส Frame ทคกนได  คลาส Dialog มรปแบบของ constructor ทส"าคญดงน2 • public Dialog(Frame parent) • public Dialog(Frame parent, String title) • public Dialog(Frame parent, boolean isModal) • public Dialog(Frame parent, String title, boolean isModal)
  • 92. สรปเนRอห&ของบท U  คล&สท,-อยC'ในแพคเก<จ java.awt ส&ม&รถน%&ม&ใชMสรM&ง GUI แบบ Look and Feel ต&มแพลตฟอร"มท,-ใชMง&นไดM โดยม,คล&ส Component เปJน Superclass ของทกคล&สท,เปJนคล&สประเภทตวใส'ส'วนประกอบกร&ฟฟAก - และคล&สประเภทส'วนประกอบกร&ฟฟAก  รCปแบบก&รจดว&งผงส'วนประกอบกร&ฟฟAกในตวใส'ส'วนประกอบกร&ฟฟAกม, ทUงหมด 5 รCปแบบคRอ BorderLayout, FlowLayout, GridLayout, CardLayout และ GridBagLayout  ก&รจดว&งผงของส'วนประกอบกร&ฟฟAกแบบ BorderLayout จะเปJนก&ร ว&งต&มท7ศต'&งๆไดM 5 ท7ศ ส'วน FlowLayout จะว&งไวMในต%&แหน'งบนสด โดยเร,ยงจ&กซM&ยไปขว& ส%&หรบ GridLayout จะว&งเร,ยงจ&กซM&ยไปขว& และบนลงล'&งในช'องย'อยท,-ม,ขน&ดเท'&กน ต&มจ%&นวนแถวและคอลมน"ท,-ไดM ระบไวM
  • 93. สรปเนRอห&ของบท U  คล&สประเภทส'วนประกอบกร&ฟฟAกท,-ส%&คญคRอ Button, Label, TextField, TextArea, Checkbox, Choice, List, Menu และ Canvas  Label จะแสดงขMอคว&ม ซb-งผCMใชMไม'ส&ม&รถปrอนขMอคว&มไดM แต'ส%&หรบ TextField ผCMใชMส&ม&รถปrอนขMอคว&มไดMย&วหนbงบรรทด ส'วน TextArea - ผCMใชMส&ม&รถปrอนขMอคว&มไดMหล&ยบรรทด  Checkbox จะเปJนช'องใหMผCMใชMเลRอกหรRอไม'เลRอกโดยส&ม&รถเลRอกไดMหล&ย ช'องพรMอมกน ซb-งจะแตกต'&งจ&ก CheckboxGroup ท,-จะส&ม&รถเลRอกไดM เพ,ยงช'องเด,ยวเท'&นUน  Choice จะแสดงร&ยก&รท,-ถCกเลRอกเพ,ยงร&ยก&รเด,ยว โดยจะแสดงหล&ย ร&ยก&รเมR-อผCMใชMคล7กเม&ส"เท'&นUน ซb-งจะแตกต'&งจ&ก List ท,จะส&ม&รถ - แสดงไดMหล&ยร&ยก&รพรMอมกน
  • 94. สรปเนRอห&ของบท U  คล&สท,-จะน%&ม&ใชMในก&รแสดงแถบเมนCและเมนCยอยคRอ MenuBar, Menu ' และ MenuItem  คล&ส Font และ Color จะถCกน%&ม&ใชMในกรณ,ทตMองก&รระบคณลกษณะ ,- ฟอนต"และส,ของตวใส'สวนประกอบกร&ฟฟAกและส'วนประกอบกร&ฟฟAก '  ก&รสรM&งภ&พกร&ฟฟAกในภ&ษ&จ&ว&จะท%&ไดMโดยก&รสรM&งคล&สท,-เปJนส'วน กร&ฟฟAก ซb-งสRบทอดม&จ&กคล&ส Canvas แลMว override เมธอด paint()  คล&ส Graphics จะม,เมธอดในก&รว&ดรCปทรงกร&ฟฟAกต'&งๆหล&ยเมธอด  คล&สในแพคเก<จ javax.swing จะถCกน%&ม&ใชMในก&รสรM&ง GUI คลM&ยกบ java.awt แต'จะม,แบบ Look and Feel ท,-เหมRอนกนในทกแพลตฟอร"ม โดย ไม'ขนอยCกบแพลตฟอร"มท,น%&ไปใชMง&น bU ' -
  • 95. แบบฝyกหด  ขMอท,- 1 • จ&กโปรแกรมจ%&ลองระบบธน&ค&ร ใหMทดลองเข,ยน GUI โดยใชMแพคเก<จ java.awt ท,- ท%&หนM&ท,-เปJนส'วนต7ดต'อกบผCMใชM (User Interface) ใหMพนกง&นของธน&ค&รส&ม&รถ เร,ยกดCร&ยชRอลCกคM& บญช,ยอดเง7น และม,ฟงก"ชนในก&รฝ&กและถอนเง7นไดM - {  ขMอท,- 2 • ทดลองปรบปรง GUI ดงกล'&วโดยใชMแพคเก<จ Swing