หน้าเว็บ

ການຈັດວາງຜັງຂອງສ່ວນປະກອບກຣາບຟິກ

ການຈັດ​ວາງ​ຜັງ​ຂອງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ

ໂປຣ​ແກຣມ GUI ຂອງ​ພາສາ​ຈາ​ວາ​ຈະ​ຈັດ​ວາງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກຕ່າງໆ ລົງ​ໃນ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ ​Container ໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ ທັງ​ນີ້​ຈະ​ກຳນົດ​ຂະໜາດ​ແລະ​ຕຳ​ແໜ່​ງຂອງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ໄດ້​ໂດຍ​ໃຊ້​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ LayoutManager ​ເຊິ່ງ ​LayoutManager ເປັນ​ອິນ​ເຕີ​ເຟດທີ່​ໃຊ້​ໃນ​ການ​ກຳນົດ​ວິທີ​ການຈັດ​ວາງ​ຜັງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ ພາສາ​ຈາ​ວາ​ໄດ້​ກຳນົດ​ໃຫ້​ມີ​ຄາດ​ທີ່ implements ອິນ​ເຕີ​ເຟດທີ່​ຊື່ LayoutManager ​ເພື່ອ​ໃຊ້​ເປັນ​ຕົວ​ຈັດ​ວາງ​ຜັງຂອງ​ສ່ວນ​ປະ​ກອບ​ກຣາບຟິກທັງ​ໝົດ​ຂອງ​ຄາດ​ຄື

1.     BoderLayout
2.     FlowLayout
3.     GridLayout
4.     CardLayout
5.     GridBagLayout

ໂປຣ​ແກຣມທີ 5.2 ຄາດJFrameSample
Text Box: import javax.swing.JFrame;
public class JFrameSample {
   private JFrame fr;
   public void init() {
       fr = new JFrame("JFrame Sample");
       fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       fr.setSize(200, 150);
       fr.setVisible(true);
   }
   public static void main(String args[]) {
       JFrameSample obj = new JFrameSample();
       obj.init();
   }
}
 

















ຮູບ​ທີ 5.8​ ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.2
      ການ​ກຳນົດ​ວິທີ​ການວາງ​ຜັງ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພ​ດ Container ຈະ​ທຳ​ໄດ້​ໂດຍ​ການ​ສ້າງ​ອອບ​ເຈັກ​ປະ​ເພ​ດ LayoutManager ຂອງ​ຄາດ​ໃດ​ຄາດ​ໜຶ່ງ​ໃນ​ຫ້າ​ຄາດ​ທາງ​ເທີ​ງ ຈາກ​ນັ້ນ​ເຮົາ​ສາມາດ​ທີ່​ຈະ​ກຳນົດ​ການ​ວາງ​ຜັງ​ໂດຍ​ການ​ເອີ້ນ​ໃຊ້​ເມ​ທອດ setLayout () ຂອງ​ຄາດ​ປະ​ເພດ Container ​ໂດຍ​ສົ່ງຜ່ານ argument ທີ່​ເປັນ​ອອບ​ເຈັກ​ປະ​ເພດ LayoutManager ທີ່​ສ້າງ​ຂຶ້ນ​ມາ​ ຕົວຢຢ່າງ​ເຊັ່ນ​ຄຳ​ສັ່ງ
         JFrame fr = new JFrame(“Demo”);
         FlowLayout fl = new FlowLayout();
         fr.setLayout(fl);
      ​ເປັນ​ການ​ກຳນົດ​ໃຫ້​ອອບ​ເຈັກ​ຂອງ​ຄາດ JFrame ທີ​ຊື່ ​fr ເຊິ່ງມີ​ວິທີ​ການຈັດ​ວາງ​ຜັງ​ໃນ​ຮູບ​ແບບ​ຂອງ​ FlowLayout ​ເນື່ອງ​ຈາກ​ຄຳ​ສັ່ງ​ໃນ​ຕົວຢ່າງ​ທາງ​ເທິງ​ຈະ​ບໍ່​ມີ​ການ​ນຳ​ອອບ​ເຈັກ fl ​ເຊິ່ງ​ເປັນ​ອອບ​ເຈັກ​ຂອງ​ຄາດ FlowLayout ໄປ​ອ້າງ​ອີງ​ໃນ​ຄຳ​ສັ່ງ​ອື່ນໆ ດັ່ງ​ນັ້ນ​ເຮົາ​ຈຶ່ງ​ສາມາດ​ທີ່​ຈະ​ຂຽນ​ຄຳ​ສັ່ງ​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ແລະ​ຄຳ​ສັ່ງ​ກຳນົດ​ຮູບ​​ແບບການວາງ​ຜັງ​ພາຍ​ໃນ​ຄຳ​ສັ່ງ​ດຽວ​ກັນ​ໄດ້​ດັ່ງ​ນີ້
         fr.setLayout(new FlowLayout());
      ​ໂດຍ​ທົ່ວ​ໄປ​ຄາດ​ປະ​ເພດ ​Container ແຕ່​ລະ​ຊະນິດ ຈະ​ມີ​ການ​ກຳນົດ​ວິ​ທີ​ການວາງ​ຜັງ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ແຕ່​ລະ​ຊະນິດ​ໄວ້​ເລີ່​ມຕົ້ນ​ຢູ່​ແລ້ວ​ດັ່ງ​ນີ້
  • ຄາດ JWindow, JFrame ​ແລະ JDialog ຈະ​ກຳນົດ​ໃຫ້​ເປັນ BorderLayout
  • ຄາດ JPanel ​ແລະ JApple ຈະ​ກຳນົດ​ໃຫ້​ເປັນ FlowLayout
5.3.1  BorderLayout
        BorderLayout ​ເປັນ​ການ​ຈັດ​ວາງ​ຜັງ​ກຳນົດ​ໃຫ້​ສາມ​າດວາງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ໄດ້ 5 ອອບ​ເຈັກ​ຕາມ​ຕຳ​ແໜ່​ງທິດ​ຕ່າງໆ ຂອງ​ອອບ​ເຈັກ​ປະ​ເພ​ດ Container 5ຕຳ​ແໜ່​ງຄື ທິດ​ເໜືອ (NORTH) ທິດ​ໃຕ້ (SOUTH) ທິດ​ຕະ​ເວັນ​ອອກ (EAST) ທິດ​ຕາ​ເວັນ​ຕົກ(WEST) ​ແລະ​ບ່ອນ​ກາງ (CENTER) ​ເຊິ່ງອອບ​ເຈັກ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກຈະ​ຖືກ​ໃສ່​ໃນ​ຕຳ​ແໜ່​ງທິດ​ຕ່າງໆ ​ໂດຍ​ຈະ​ມີ​ການ​ກຳນົດ​ຂະໜາດ​ໃຫ້​ໂດຍ​ອັດຕະ​ໂນ​ມັດ
      ​ໂປຣ​ແກຣມທີ 5.3 ສະ​ແດງ​ຕົວຢ່າງ​ໂປຣ​ແກຣມ GUI ທີ່​ປະກອບ​ໄປ​ດ້ວຍ​ປຸ່ມ 5 ປຸ່ມ ​ໂດຍ​ໄດ້​ສ້າງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JButton ຂຶ້ນ​ມາ 5 ອອບ​ເຈັກ​ເຊິ່ງມີ​ຊື່​ເປັນ bn1 ຈົນ​ເຖິງ bn5 ​ແລະ​ມີ​ຂໍ້ຄວາມ​ເທິງ​ປຸ່ມ​ເປັນ B1 ຈົນ​ເຖິງ B5 ຕາມ​ລຳດັບ​ຈາກ​ນັ້ນ​ໄດ້​ໃສ່​ອອບ​ເຈັກ​ຊະນິດ JButton ​ແຕ່​ລະ​ຕົວ​ລົງ​ໄປ​ໃນ​ອອບ​ເຈັກ​ຊະນິດ JFrame ທີ່​ຊື່ ​fr ໂດ​ຍ​ໃຊ້​ເມ​ທອດ add() ຕາມ​ຕຳ​ແໜ່​ງທິດ​ຕ່າງໆ ​ໂດຍ​ທີ່​ອອບ​ເຈັກ bn1 ຈະ​ຢູ່​ທາງ​ທິດ​ເໜືອ ອອບ​ເຈັກ bn2 ຈະ​ຢຸ່ທາງ​ທິດ​​ໃຕ້ ອອບ​ເຈັກ bn3 ຈະ​ຢູ່​ທາງ​ທິດ​ຕາ​ເວັນ​ອອກ ອອບເຈັກ bn4 ຈະ​ຢູ່​ທາງ​ທິດຕາ​ເວັນ​ຕົກ ​ແລະ​ອອບ​ເຈັກ bn5 ຈະ​ຢູ່​ບ່ອນ​ກາງ ​ເຊິ່ງ​ໂປຣ​ແກຣມນີ້​ຈະ​ໃຫ້​ຜົນ​ລັບ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 5.9
     ການ​ໃຊ້​ເມ​ທອດ add() ​ໃນ​ກໍລະນີ​ອອບ​ເຈັກ​ປະ​ເພດ Container ມີ​ການຈັດ​ວາງ​ຜັງ​ແບບ BorderLayout ນັ້ນ​ຈະຕ້ອງ​ມີ argument ​ເພື່ອ​ລະບຸ​ຕຳ​ແໜ່​ງທິດ​ທີ່​ຕ້ອງການ​ວາງ​ອອບ​ເຈັກ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ເຊັ່ນ ຄຳ​ສັ່ງ
           fr.add(bn1,BorberLayout.NORTH);
      ​ເປັນຄຳ​ສັ່ງ​ທີ່​ໃຊ​ໃນ​ການ​ໃສ່​ອອບ​ເຈັກ bn1 ລົງ​ໃນ ​Jframe ໃນ​ຕຳ​ແໜ່​ງທິດ​ເໜືອ
      ກໍລະນີ​​ເອີ້ນ​ໃຊ້​ເມ​ທອດ ​add () ໂດຍ​ບໍ່​ສົ່ງ​ຜ່ານ argument ​ເພື່ອ​ລະບຸ​ຕຳ​ແໜ່​ງທິດ​ທີ່​ຕ້ອງການ​ວາງ​ອອບ​ເຈັກ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກນັ້ນ ພາສາ​ຈາ​ວາ​ຈະ​ຖື​ວ່າ​ເປັນ​ການ​ກຳນົດ​ໃຫ້​ໃສ່​ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ໄວ້​ຕຳ​ແໜ່​ງບ່ອນ​ກາງ​ຂອງ​ອອບ​ເຈັກຂອງ​ຄາດ​ປະ​ເພ​ດ Container ​ເຊັ່ນ ​ຄຳ​ສັ່ງ
         fr.add(bn1);
ຈະ​ຖື​ວ່າ​ເປັນ​ຄຳ​ສັ່ງ​ເຊັ່ນ​ດຽວ​ກັບ​ຄຳ​ສັ່ງ
         fr.add(bn1,BorderLayout.CENTER);





















ໂປຣ​​ແກຣມທີ 5.3 ຕົວຢ່າງ​ການ​ໃຊ້​ຕົວ​ຈັດ​ວາງ​ແບບ​ຜັງ​ແບບ BorderLayout
Text Box: import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
      public class BorderLayoutSample {
      private JFrame fr;
      private JButton bn1, bn2, bn3, bn4, bn5;
      public void init() {
          fr = new JFrame("Button Sample");
          fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          bn1 = new JButton("B1");
          bn2 = new JButton("B2");
          bn3 = new JButton("B3");
          bn4 = new JButton("B4");
          bn5 = new JButton("B5");
          fr.add(bn1, BorderLayout.NORTH);
          fr.add(bn2, BorderLayout.SOUTH);
          fr.add(bn3, BorderLayout.EAST);
          fr.add(bn4, BorderLayout.WEST);
          fr.add(bn5);
          fr.setSize(200, 150);
          fr.setVisible(true);
      }
      public static void main(String args[]) {
          BorderLayoutSample obj = new BorderLayoutSample();
          obj.init();
      }
}
 

































ຮູບ​ທີ 5.9 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາ​ກການ​ລັນ​ໂປຣ​ແກຣມທີ 5.3

      ການ​ປັບ​ຂະໜາດຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ Container ຈະ​ມີ​ຜົນ​ເຮັດ​ໃຫ້​ຂະໜາດ​ຂອງ​ອອບ​ເຈັກ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ ປ່ຽນ​ແປງ​ໄປ​ຕາມ​ຂະໜາດ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ Container ດັ່ງ​ນີ້
  • ອອບ​ເຈັກ​ຂອງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກທີ່​ຢູ່​ຕຳ​ແໜ່​ງທິດ​ເໜືອ ​​ໃຕ້ ​ແລະ​ບ່ອນ​ກາງ ຈະ​ປັບ​ຂະໜາດ​ຕາມ​ຂະໜາດ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ Container ຕາມ​ແນວ​ນອນ ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 5.10(ກ)
  • ອອບ​ເຈັກ​ຂອງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກທີ່​ຢູ່​ຕຳ​ແໜ່​ງທິດ​ຕາ​ເວັນ​ອອກ ​​ຕາ​ເວັນ​ຕົກ ​ແລະ​ບ່ອນ​ກາງ ຈະ​ປັບ​ຂະໜາດ​ຕາມ​ຂະໜາດ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ Container ຕາມ​ແນວ​ນອນ ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 5.10(ຂ)
 
            (ກ) ​ແນວນ​ອນ                           (ຂ) ​ແນ​ຕັ້ງ
ຮູບ​ທີ 5.10 ຂະໜາດຂອງ​ອອບ​ເຈັກ​ທີ່​ຖືກ​ປັບ
5.3.2  FlowLayout
        FlowLayout ​ເປັນ​ການຈັດ​ວາງ​ຜັງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ໄວ້​ຕຳ​ແໜ່​ງ​ເທິງ​ສຸດ​ຂອງ​ອອບ​ເຈັກຂອງ​ຄາດ​ປະ​ເພດ ​Container ໂດຍ​ຈະ​ລຽງອອບ​ເຈັກຂອງ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກຈາກ​ຊ້າຍ​ໄປ​ຂວາ ​ແລະ​ຖ້າ​ຄວາມ​ກວ້າງ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ Container ​ໃນ​ແຕ່ລະ​ແຖວ​ບໍ່ພໍ ຕົວ​ຈັດ​ວາງ​ຜັງ​ແບບ FlowLayout ຈະ​ນຳ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ເປັນສ່ວນ​ປະກອບ​ທີ່​ເຫລືອ​ວາງ​ໃນ​ຕຳ​ແໜ່​ງຖັດ​ໄປ​ດ້ານ​ລຸ່ມ ການຈັດ​ວາງ​ຜັງ​ແບບ FlowLayout ຈະ​ປັບ​ຂະໜາດ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກຕ່າງໆ ຕາມ​ຄວາມ​ເໝາະ​ສົມ ທັງ​ນີ້​ຂຶ້ນ​ຢູ່​ກັບ​ຂໍ້​ກຳນົດ​ຕ່າງໆ ​ເຊັ່ນ ຂະໜາດ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JButton ຈະ​ມີ​ຂະໜາດ​ຂອງ​ຂໍ້ຄວາມ​​ເທິງ​ປຸ່ມ ​ເປັນ​ຕົ້ນ
      ​ໂປ​ຣ​ແກຣມທີ 5.4 ສະ​ແດງ​ຕົວຢ່າງ​ໂປຣ​ແກຣມ GUI ທີ່​ສ້າງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JFrame ຂຶ້ນ​ມາ​ແລ້ວ​ກຳນົດ​​ໃຫ້​ມີ​ການຈັດ​ວາງ​ຜັງ​ແບບ ​FlowLayout ໂດຍ​ໃຊ້​ຄຳ​ສັ່ງ
        fr.setLayout(new FlowLayout());
Text Box: import java.awt.*;
import javax.swing.*;
public class FlowLayoutSample {
    private JFrame fr;
    private JButton bn1, bn2, bn3;
    public void init() {
        fr = new JFrame("Button Sample");
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fr.setLayout(new FlowLayout());
        bn1 = new JButton("Submit");
        bn2 = new JButton("Cancel");
        bn3 = new JButton("Exit");
        fr.add(bn1);
        fr.add(bn2);
        fr.add(bn3);
        fr.setSize(200, 150);
        fr.setVisible(true);
    }
    public static void main(String args[]) {
        FlowLayoutSample obj = new FlowLayoutSample();
        obj.init();
    }
}
ໂປຣ​ແກຣມທີ 5.4 ຕົວຢ່າງ​ການ​ໃຊ້​ຕົວ​ຈັດ​ວາງ​ຜັງ​ແບບ FlowLayout




















​ໂປຣ​ແກຣມ GUI ນີ້​ຈະ​ມີ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JButton ຢູ່​ສາມ​ອອບ​ເຈັກ ​ໂດຍ​ກຳນົດ​ໃຫ້​ມີ​ຂໍ້ຄວາມ​ເປັນ Submit, Cancel ​ແລະ Exit ຈາກ​ນັ້ນ​ໂປຣ​ແກຣມ​ໄດ້​ໃສ່​ອອບ​ເຈັກ​ຂອງ​ຄາດ ​JButton ແຕ່​ລະ​ຕົວ​ລົງ​ໃນ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JFrame ​ເຊິ່ງຈະ​ໄດ້​ໂປຣ​ແກຣມ GUI ທີ່​ມີ​ປຸ່ມ​ສາມ​ປຸ່ມ​ລຽງ​ຈາກ​ຊ້າຍ​ໄປ​ຂວາ​ດັ່ງ​ຮູບ​ທີ 5.11 (ກ) ​ແລະ​ໃນ​ກໍລະນີ ຂະໜາດ​ແຄ​ບປຸ່ມ​ບາງ​ປຸ່ມ​ກໍ່​ຈະ​ລົງ​ມາ​ຢູ່​ໃນ​ຕຳ​​ແໜ່​ງຖັດ​ໄປ​ດັ່ງ​ຮູບ​ທີ 5.11(ຂ)

 
                     (ກ)                          (ຂ)

ຮູບ​ທີ 5.11 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.4

5.3.3 GridLayout
      GridLayout ​ເປັນ​ການຈັດ​ວາງ​ຜັງ​ທີ່​ແບ່ງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພ​ດ Container ​ເປັນ​ຊ່ອງ​ທາງ​ຍ່ອຍໆ ຫລາຍ​ຊ່ອງ ​ໂດຍ​ແຕ່​ລະ​ຊ່ອງ​ຍ່ອຍ​ຈະ​ມີ​ຂະໜາດ​ຄວາມ​ກວ້າງ​ແລະ​ຄວາມ​ສູງ​ເທົ່າ​ກັນ GridLayout ຈະ​ອະ​ນູຍາດ​ໃຫ້​ໃສ່​ອອບ​ເຈັກຂອງ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ໄດ້​ໜຶ່ງ​ອອບ​ເຈັກ ​ໃນ​​ແຕ່​ລະ​ຊ່ອງ​ຍ່ອຍ ​ໂດຍ​ຈະ​ກຳນົດ​ໃຫ້​ຂະໜາດ​ໃຫ້​ຂະໜາດ​ຂອງ​ອອບ​ເຈັກຂອງ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກມີ​ຂະໜາດ​ເທົ່າ​ກັບ​ຂະໜາດ​ຂອງ​ຊ່ອງ​ຍ່ອຍ ການ​ສ້າງ​ຕົວ​ຈັດ​ວາງ​ຜັງ​ແບບ GridLayout ​ທຳ​ໄດ້​ໂດຍ​ການ​ສ້າງ​ອອບ​ເຈັກ​ຂອງຄາ​ດ GridLayout​ ທີ່​ມີ​ຮູບ​ແບບ​ຂອງ  constructor ​ເປັນ​ດັ່ງ​ນີ້
              public GridLayout(int row, int col)
      ​ໂດຍ​ທີ່ row ​ແລະ col ຄື​ຈຳນວນ​ແຖວ​ແລະ​ຄໍ​ລ້ຳ​ທີ່​ຕ້ອງ​ການ​ແບ່ງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ​ປະ​ເພດ ​Container ໃຫ້​ເປັນ​ຊ່ອງ​ຍ່ອຍ
      ການ​ໃສ່​ອອບ​ເຈັກຂອງ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະ​ກອບ​ກຣາບຟິກລົງ​ໃນ​ຊ່ອງ​ຍ່ອຍ ຈະ​ທຳ​ໄດ້​ໂດຍ​ການ​ເອີ້ນ​ໃຊ້​ເມ​ທອດ add () ​ເຊັ່ນ​ດຽວ​ກັນ ​ແຕ່​​ໃນ​ກໍລະນີ​ນີ້ໂປຣ​ແກຣມ GUI ຈະ​ໃສ່​ອອບ​ເຈັກ​ຈາກ​ຊ່ອງ​ຍ່ອຍ​ເທິງ​ສຸດ​ລຽງ​ຈາກ​ຊ້າຍ​ໄປ​ຂວາ ​ໂດຍ​ບໍ່​ສາມາດ​ທີ່​ຈະ​ຂ້າ​ມຊ່ອງ​ຍ່ອຍ​ໃດ​ຊ່ອງ​ຍ່ອຍ​ໜຶ່ງ​ໄດ້



ໂປຣ​ແກຣມທີ 5.5 ຕົວຢ່າງ​ການ​ໃຊ້​ຕົວ​ຈັດ​ວາງ​ຜັງ​ແບບ GridLayout
Text Box: import java.awt.*;
import javax.swing.*;
public class GridLayoutSample {
     private JFrame fr;
     private JButton bn1, bn2, bn3, bn4, bn5;
     public void init() {
          fr = new JFrame("Button Sample");
          fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          bn1 = new JButton("B1");
          bn2 = new JButton("B2");
          bn3 = new JButton("B3");
          bn4 = new JButton("B4");
          bn5 = new JButton("B5");
          fr.setLayout(new GridLayout(3, 2));
          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.setVisible(true);
     }
     public static void main(String args[]) {
          GridLayoutSample obj = new GridLayoutSample();
          obj.init();
     }
}
 

































ຮູບ​ທີ5.12 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.5
5.4  ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ໃນ​ແພັກ​ເກດ Swing
​​ແພັກ​ເກດ AWT ມີ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • Button ​ເປັນ​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ທີ່​​ເປັນປຸ່ມ
  • ​Label ເປັນ​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ທີ່​ມີ​ໄວ້​ໃນ​ການສະ​ແດງ​ຂໍ້ຄວາມ
  • ​Text Field ເປັນ​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ເພື່ອ​ໃຫ້​ຜູ້​ໃຊ້​ປ້ອນ​ຂໍ້ຄວາມ​ໄດ້​ສູງ​ສຸດ​ໜຶ່ງ​ບັນທັດ
  • Checkbox ​ເປັນ​ຄາດ​ທີ່​ທຳ​ໜ້າ​ທີ່​ຄ່າ​ຍກັບ​ປຸ່ມ​ໂດຍ​ໃຊ້​ສະ​ວິດ “on-off”
  • Choice ​ເປັນຄາດ​ທີ່​ຜູ້​ໃຊ້​ສາມາດ​ເລືອກ​ລາຍການ​ຈາກ​ທີ່​ກຳນົດ​ມາ​ໃຫ້​ໄດ້
  • List ​ເປັນ​ຄາດ​ທີ່​ຈະ​ທຳ​ໜ້າ​ທີ່​ຄ່າ​ຍ ​Choice ແຕ່​ຈະ​ສະ​ແດງລາຍການ​ໄດ້​ຫລາຍ​ແຖວ​ພ້ອມ​ໆ ກັນ
  • Scollbar ​ເປັນ​ຄາດ​ທີ່​ທຳ​ໜ້າ​ທີ່​ເປັນ​ແຖບ​ຄວບ​ຄຸມ​ເພື່ອ​ໃຫ້​ຜູ້​ໃຊ້​ສາມາດ​ເລື່ອນ​ໄປ​ຍັງ​ຕຳ​ແໜ່​ງທີ່​ຕ້ອງການ​ໄດ້
  • ​Canvas ເປັນ​ຄາດ​ທີ່​ເປັນ​ພື້ນ​ທີ່​ວ່າງ​ເປົ່າ​ເພື່ອ​ໃຊ້​​ໃນ​ການ​ແຕ້ມ​ຮູບ​ກຣາບຟິກ​ລົງໄປ
ສຳ​ຫລັບ​ຄາດ​ທີ່​ເປັນສ່ວນ​ປະກອບ​ກຣາບຟິກຂອງ​ແພັກ​ເກດ Swing ທຸກ​ຄາດ​ຈະ​ສືບ​ທອດ​
ມາ​ຈາກ​ຄາດJComponent ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູ​ບທີ 5.13 ​ໂດຍ​ຄາດ JComponent ຈະ​ສືບ​ທອດ​ມາ​ຈາກ​ຄາດ Container ​ໃນ​ແພັກ​ເກດ AWT ອີກ​ຕໍ່​ໜຶ່ງ


ຮູບ​ທີ 5.13 ຄາດ​ຕ່າງໆ ທີ່​ສືບ​ທອດ​ມາ​ຈາກ​ຄາດ JComponent

     ​ແພັກ​ເກດ Swingຈະ​ມີ​ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກທີ່​ສອດ​ຄ່ອງ​ກັບ​ຄາດ​ໃນ​ແພັກ​ເກດ AWT ​ໂດຍ​ຄາດ​ເຫລົ່າ​ນີ້​ຈະ​ມີ​ຊື່​ຂຶ້ນ​ຕົ້ນ​ດ້ວຍ​ອັກສອນ ​‘J’ ໂດຍ​ມີ​ຄາດ​ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • JButton ​ເປັນຄາດ​ທີ່​ທຳ​ໜ້າ​ທີ່​ເປັນ​ປຸ່ມ​ໃນ​ແພັກ​ເກດ Swing
  • ​JLabel ເປັນ​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ທີ່​ໄວ້​ໃນ​ການສະ​ແດງ​ຂໍ້ຄວາມ​ໃນ​ແພັກ​ເກດ Swing
  • JTextField ​ເປັນ​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ປ້ອນ​ຂໍ້ຄວາມ​ໜຶ່ງ​ບັນທັດ​ໃນ​ແພັກ​ເກດ Swing
  • ​JTextArea ເປັນ​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ປ້ອນ​ຂໍ້ຄວາມ​ຫລາຍ​ບັນທັດ​ໃນ​ແພັ​ກເກດ Swing
  • JScrollBar ​ເປັນ​ຄາດ​ທີ່​ທຳ​ໜ້າ​ທີ່​ເປັນ​ແຖບ​ຄວບ​ຄຸມ​ເພື່ອ​ໃຫ້​ຜູ້​ໃຊ້​ເລື່ອນ ​ໄປ​ຍັງ​ຕຳ​ແໜ່​ງທີ່​ຕ້ອງການ​ໄດ້​​ໃນ​ແພັກ​ເກດ Swing
  • ​JCheckBox ເປັນ​ຄາດ​ທີ່​ທຳ​ໜ້າ​ທີ່​ຄ່າ​ຍປຸ່ມ​ໃນ​ແພັກ​ເກດ Swing
  • JChoice ​ເປັນ​ຄາດ​ທີ່​ຜູ້​ໃຊ້​ສາມາດ​ເລືອກ​ລາຍການ​ໄດ້​ໃນ​ແພັກ​​ເກດ Swing
ການ​ຂຽນ​ໂປຣ​ແກຣມ GUI ​ໂດຍ​ຫລາຍ​ຈະ​ໃຊ້​ສ່ວນ​ປະກອບ​ກຣາບຟິກຂອງ​ແພັກ​ເກດ
Swing ທີ່​ມີ Look and Feel ທີ່​ດີກ​ວ່າ​ຂອງ​ແພັກ​ເກດ AWT ຮູ​ບທີ 5.14 ສະ​ແດງ​ຕົວຢ່າງ​ສ່ວນ​ປະກອບ​ກຣາບຟິກຂອງ​ແພັກ​ເກດ Swing ບາງ​ຄາດ ​ເຊິ່ງ​ເນື້ອ​ຫາ​ໃນ​ຫົວ​ຂໍ້​ຍ່ອຍ​ຕໍ່​ໄປະ​ຈະ​ອະທິບາຍ​ການ​ໃຊ້​ງານ​ຂອງ​ຄາດ​ທີ່​ສຳຄັນ​ບາງ​ຄາດ




ຮູບ​ທີ 5.14 ຕົວຢ່າງ​ການ Look and Feel ຄາດ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ​ໃນ​ແພັກ​ເກດ Swing
5.4.1 ຄາດ JButton
      JButton ​ເປັນ​ຄາດ​ທີ່​ໃຊ້​​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ທີ່​ສະ​ແດງ​ເປັນປຸ່ມ ​ໂດຍ​ຈະ​ມີ​ຂໍ້ຄວາມ (text) ປະກົດ​ຢູ່​ເທິງ​ປຸ່ມ ຜູ້​ໃຊ້​ສາມາດ​​ໃຊ້​ອຸປະກອນ​ອິນ​ພຸດ​ເຊັ່ນ​ເມົ້າ​ຫລື​ຄີບ​ອດກົດ​ເລືອກ​ປຸ່ມ​ໄດ້ JButton ​ເປັນ​ຄາດ​ທີ່​ສື​ບທອດ​ມາ​ຈາກ​ຄາດ JComponent ​ເຮົາ​ສາມ​າດທີ່​ຈະ​ສ້າງ​ອອບ​ເຈັກຂອງ​ຄາດ JButton ​ໂດຍ​ເອີ້ນ​ໃຊ້ constructor ຂອງ​ຄາດ JButton ທີ່​ມີ​ຮູບ​ແບບ​ດັ່ງ​ນີ້
·         public JButton()
·         public JButton(String text)
·         public Jbutton(Icon icon)
·         public JButton(String text, Icon icon)
​ໂດຍ​ທີ່
  • text ຄື​ຂໍ້ຄວາມ​ທີ່​ຈະ​ປະກົດ​ຢູ່​ເທິງ​ປຸ່ມ
  • Icon ຄື​ໄອ​ຄອນ​ທີ່​ຕ້ອງການ​ສະ​ແດງ
ຄາດ Button ຍັງ​ມີ​ເມ​ທອດ​ອື່ນໆ ທີ່​ສຳຄັນ​ໃນ​ການ​ຈັດການ​ກັບ​ຂໍ້ຄວາມ​ດັ່ງ​ນີ້
  • public void setText(String text) ​ເປັນ​ເມ​ທອດ​ທີ່​ໃຊ້​ໃນ​ການ​ກຳນົດ​ຫລື​ປ່ຽນ​ຂໍ້ຄວາມ​ຂອງ​ປຸ່ມ
  • public String getText() ​ເປັນ​ເມ​ທອດ​ທີ່​ໃຊ້​ໃນ​ການ​ເອີ້ນ​ເບິ່ງ​ຂໍ້ຄວາມ​ຂອງ​ປຸ່ມ
  • public void setMnemonic(char c) ຫລື void setMnemonic(int i) ​ເປັນ​ເມ​ທອດ​ໃນ​ການ​ກຳນົດ​ຄີ​ທີ່​ເປັນ ​shortcut ໃຫ້​ກັບ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JButton
  • public void setIcon(Icon c) ​ເປັນ​​ເມ​ທອດ​ໃນ​ການ​ໃສ່​ໄອ​ຄອນ (icon) ລົງ​ໃນ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JButton
ນອກ​ຈາ​ນີ້​ເຮົາ​ຍັງ​ສາມາດ​ເອີ້ນ​ໃຊ້​ເມ​ທອດ​ຂອງ​ຄາດ JComponent ​ເຊິ່ງ​ເປັນ superclass ຂອງ JButton ທີ່​ມີ​ເມ​ທອດ​ທີ່​ເພີ່ມ​ລັກສະນະ​ຕ່າງ​ໆ ​ໃຫ້​ກັບ​ອອບ​ເຈັກ​ທີ່​ເປັນ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ ​ເຊັ່ນ
  • public void setBorder(Border bd) ​ເປັນ​ເມ​ທອດ​ສຳ​ຫລັບ​ກຳນົດ​ຂອບ​ໃຫ້​ກັບ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ
·         public void setToolTipText(String text) ​ເປັນ​ເມ​ທອດ​ສຳ​ຫລັບ​ກຳນົດ​ຂໍ້ຄວາມ​ທີ່​ຈະ​ສະ​ແດງ​ເປັນ ​tooltip ໃຫ້​ກັບ​ສ່ວນ​ປະກອບ​ກຣາບຟິກ
ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JButton ທີ່​ສະ​ແດງ​ຂໍ້ຄວາມ​ຄີ​ທີ່​ເປັນ shortcut ​
ແລະ tooltip ສາມາດ​ກຳນົດ​ໄດ້​ຕາມ​ຄຳ​ສັ່ງ​ດັ່ງ​ນີ້
         JButton b1 = new JButton("Demo button");
         b1.setMnemonic(KeyEvent.VK_D);
         b1.setToolTipText("Click this button ");

5.4.2 ຄາດ JLabel
      JLabel ​ເປັນ​ຄາດ​ທີ່​ໃຊ້​ສ້າງ​ອອບ​ເຈັກ​ທີ່​ເປັນສ່ວນ​ປະກອບ​ກຣາບຟິກທີ່​ໃຊ້​​ໃນ​ການສະ​ແດງ​ຂໍ້ຄວາມ ​ໂດຍ​ທີ່​ຄາດ JLabel ມີ constructor ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
·         public JLabel(String text)
·         public JLabel(String text, int align)
·         public Jlabel(Icon icon)
·         public Jlabel(Icon icon, int align)
·         public JLabel(String text, Icon icon)
      ໂດຍ​ທີ່
  • text ຄື​ຂໍ້ຄວາມ​ທີ່​ຕ້ອງການ​ສະ​ແດງ
  • align ຄື​ການ​ກຳນົດ​ການວາງ​ແນວ (ຊິດ​ຊ້າຍ  ຂວາ ຫລື​ບ່ອນ​ກາງ) ຂອງ​ຂໍ້ຄວາມ
  • Icon ຄື​ໄອຄອນ​ທີ່​ຕ້ອງການ​ສະ​ແດງ
ຄາດ JLabel ຍັງ​ມີ​ເມ​ທອດ​ອື່ນໆ ​ໃນ​ການ​ຈັດການ​ແລະ​ກຳນົດ Look and Feel ຂອງ​
ອອບ​ເຈັກ​ເຊັ່ນ​ດຽວ​ກັບ ​JButton ເຊິ່ງຄຳ​ສັ່ງ​ເຫລົ່າ​ນີ້​ສາມາດ​ຫາ​ໄດ້​ຈາກ Java API ຫລື​ເອີ້ນ​​ເບິ່ງ​ຄຳ​ສັ່ງ​ໃນ​ໂປຣ​ແກຣມ IDE ​ເຊັ່ນ NetBeans
      ​ໂປ​ຣ​ແກຣມທີ 5.6 ສະ​ແດງ​ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ​ຊະນິດ JLabel ຂຶ້ນ​ມາ​ສາມ​ອອບ​ເຈັກ​ໂດຍ​ແຕ່​ລະ​ອອບ​ເຈັກ​ຈະ​ໃຊ້​ຄຳ​ສັ່ງ constructor ທີ່​ແຕກ​ຕ່າງ​ກັນ ​ແລະ​ຈະ​ມີ​ໄອ​ຄອນ​ປະ​ກອບ​ຂໍ້ຄວາມ​ໃນ​ອອບ​ເຈັກ​ຊື່ label ​ແລະ label3 ​ໂດຍ​ໄອ​ຄອນ​ຈະ​ສ້າງ​ມາ​ຈາກ​ໄຟ​ທີ່​ມີ​ຊື່ testImg.jpg ທີ່​ເກັບ​ໃນ​ໄດ​ເລັກ​ທໍ​ລີ​ທີ່​ຊື່ images ​ເຊິ່ງຢູ່​ພາຍ​ໃນ​ໄດ​ເລັກ​ທໍ​ລີ​ດຽວ​ກັບ​ໄຟ​ທີ່​ຊື່ JLabelDemo.class ໂປຣ​ແກ​ຣມນີ້​ຈະ​ທຳ​ການ​​ໂຫລ​ດ​ໄຟ​ດັ່ງກ່າວ​ມາ​ໃສ່​ໃນ​ອອບ​ເຈັກ​ທີ່​ຊື່ icon​ໂດຍ​ມີ​ຄຳ​ສັ່ງ​ດັ່ງ​ນີ້
      URL imageURL = JLabelDemo.class.getResource("images/testImg.jpg");
      if (imageURL != null) {
      icon = new ImageIcon(imageURL);
      }
​ໂປຣ​ແກຣມນີ້​ຈະ​ໃຫ້​ຜົນ​ລັບ​ດັ່ງ​ຮູບ​ທີ 5.15
ໂປຣ​ແກຣມທີ 5.6 ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ​ຊະນິດ JLabel
Text Box: import java.awt.*;
import java.net.URL;
import javax.swing.*;
   public class JLabelDemo {
   private JFrame fr;
   private JLabel label1, label2, label3;
   public void init() {
   ImageIcon icon = null;
   fr = new JFrame("JLabel Sample");
   fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   URL imageURL = JLabelDemo.class.getResource("images/testImg.jpg");
   if (imageURL != null) {
      icon = new ImageIcon(imageURL);
   }
   fr.setLayout(new GridLayout(3, 1));
   //Create the first label.
   label1 = new JLabel("Image and Text", icon, JLabel.CENTER);
   //Set the position of its text, relative to its icon:
   label1.setVerticalTextPosition(JLabel.BOTTOM);
   label1.setHorizontalTextPosition(JLabel.CENTER);
 




















Text Box:       //Create the other labels.
      label2 = new JLabel("Text-Only Label");
      label3 = new JLabel(icon);
      //Create tool tips, for the heck of it.
      label1.setToolTipText("A label containing both image and text");
      label2.setToolTipText("A label containing only text");
      label3.setToolTipText("A label containing only an image");
      //Add the labels.
      fr.add(label1);
      fr.add(label2);
      fr.add(label3)
      fr.pack();
      fr.setVisible(true);
  }
  public static void main(String args[]) {
      JLabelDemo obj = new JLabelDemo();
      obj.init();
  }
}
 






















ຮູບ​ທີ5.15 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.6
5.4.3 ຄາດ JTextField
       JTextField ຄື​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ເພື່ອ​ໃຫ້​ຜູ້​ໃຊ້​ປ້ອນ​ຂໍ້ຄວາມ​ໜຶ່ງ​ບັນທັດ ​ໂດຍ​ທີ່ຄາດ JTextFied ມີ constructor ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • public JTextField()
  • public JTextField(int col)
  • public JTextField(String text)
  • public JTextField(String text, int col)
​ໂດຍ​ທີ່
  • text ຄື​ຂໍ້ຄວາມ​ເລີ່​ມຕົ້ນ​ທີ່​ຕ້ອງການ​ສະ​ແດງ
  • col ຄື​ຈຳນວນ​ຄໍ​ລ້ຳ​ທີ່​ຕ້ອງາການສະ​ແດງ
ຄາດ JTextField ມີ​ເມ​ທອດ​ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • public int getColumns()
·         public String getText()
  • public boolean isEditable()
  • public void select(int selectionStart, int selectionEnd)
  • public void selectAll()
  • public void setEditable(boolean b)
  • public void setText(String t)
  • public void setColumn(int column)
​ເມ​ທອດ ​ setText()ໃຊ້​ໃນ​ການ​ກຳ​ນົດຫລື​ປ່ຽນ​ຂໍ້ຄວາມ​ຂອງ​ອອບ​ເຈັກ​ຊະນິດ
JTextFiled​ ໃນ​ກໍລະນີ​ເຮົາ​ຕ້ອງການ​ກຳນົດ​ໃຫ້ JTextField ສາມາດ​ອ່ານ​ຂໍ້ຄວາມ​ໄດ້​ຢ່າງ​ດຽວ ​ເຮົາ​ສາມາດ​ທຳ​ໄດ້​ໂດ​ຍ​ເອີ້ນ​ໃຊ້​ເມ​ທອດ setEditable(boolean b)​ ໂດຍ​ກຳນົດ​ໃຫ້ argument ມີ​ຄ່າ​ເປັນ falseສ່ວນ​ເມ​ທອດ select()​ໃ ຊ້​ໃນ​ການ​ເລືອກ​ຂໍ້ຄວາມ​ໃນ JTextField
      ​ໂປຣ​ແກຣມທີ 5.7 ສະ​ແດງ​ຕົວຢ່າງ​ກາ​ນສ້າງ​ເຟມທີ່​ອອບ​ເຈັກ​ຂອງ​ຄາດ ​Label ແລະ TextField ສະ​ແດງ​ຢູ່​​ໂປຣ​ແກຣມນີ້ຈະ​ກຳນົດ​ໃຫ້​ອອບ​ເຈັກ fr ຂອງ​ຄາດ JFrame ມີ​ການ​ຈັດ​ວາງ​ຜັງ​ແບບ FlowLayoutn ຜົນ​ລັບ​ຂອງ​ໂປຣ​ແກຣມນີ້​ເປັນ​ ດັ່ງສະ​ແດງ​ໃນ​ຮູບ​ທີ 5.12







ໂປຣ​ແກຣມທີ 5.7 ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ JTextField
Text Box: import java.awt.*;
import javax.swing.*;
public class JTextFieldDemo {
    private JFrame fr;
    private JLabel l;
    private JTextField tf;
    public void init() {
        fr = new JFrame("JTextField Demo");
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        l = new JLabel("Name: ");
        tf = new JTextField("Numnonda", 15);
        fr.setLayout(new FlowLayout());
        fr.add(l);
        fr.add(tf);
        fr.pack();
        fr.setVisible(true);
    }
    public static void main(String args[]) {
        JTextFieldDemo obj = new JTextFieldDemo();
        obj.init();
    }
}
 

























ຮູບ​ທີ 5.16 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.7




5.4.4 ຄາດ JTextArea
      JTextArea ​ເປັນຄາດ​ທີ​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ທີ່​ສາມາດ​ປ້ອນ​​ແລະ​ແກ້​ໄຂ​ຂໍ້ຄວາມ​ໄດ້ JTextArea ຕ່າງ​ຈາກ JTextField ບ່ອນ​ທີ່​ຈະ​ສາມາດ​ກຳນົດ​ຈຳນວນ​ບັນທັດ​ໄດ້​ຫລາຍ​ບັນທັດ ​ໂດຍ​ທີ່​ຄາດ JTextArea ມີ constructor ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • public JTextArea()
  • public JTextArea(String Text)
  • public JTextArea(String Text, int row, int col)
  • public JTextArea(int row, int col)
​ໂດຍ​ທີ່
  • text ຄື​ຂໍ້ຄວາມ​ເລີ່​ມຕົ້ນ​ທີ່​ຕ້ອງການ​ສະ​ແດງ
  • ​row ແລະ col ຄຳ​ຈຳນວນ​ແຖວ​ແລະ​ຄໍ​ລ້ຳ​ຂອງ
  • ​Scrollbar ເປັນ​ການ​ກຳນົດ​ການ​ມີ scrollbar ຂອງ TextArea
ຄາດ JTextArea ຈະ​ມີ​ເມ​ທອດ​ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • Public int getColumns ()
  • public int getRows()
  • public String getSelectedText()
  • public boolean isEditable()
  • public void select(int selectionStart, int selectionEnd)
  • public void selectAll()
  • public void setEditable(boolean b)
  • public void setText(String t)
  • public void setColumns(int column)
  • public void setRows(int rows)
ທັງ​ນີ້​ເມ​ທອດ​ທີ່​ສຳຄັນ​ທີ່ຢູ່​ໃນ​ຄາດ JTextArea ຈະ​ຄ່າ​ຍກັບ​ເມ​ທອດ​ຂອງ​ຄາດ ​
JTextArea ແຕ່​ຈະ​ເພີ່ມ​ເມ​ທອດ​ທີ່​ກ່ຽວຂ້ອງ​ກັບ​ການ​ຈັດການ​ຈຳນວນ​ແຖວ​ຂຶ້ນ​ມາ ​ເຊັ່ນ ​setRow () ແລະ getRow ()
      ​ໂປຣ​ແກຣມທີ 5.8 ສະ​ແດງ​ຕົວ​ຢ່າງ​ການ​ສ້າງ JFrame ທີ່​ມີ​ອອບ​ເຈັກ​ຂອງ​ຄາດ JTextArea ​ໂດຍ​ໂປຣ​ແກຣມນີ້​ຈະ​ໃຫ້​ຜົນ​ລັບ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 5.8





ໂປຣ​ແກຣມທີ 5.8 ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ JTextArea
Text Box: import java.awt.*;
import javax.swing.*;
public class JTextAreaDemo {
    private JFrame fr;
    private JTextArea ta;
    public void init() {
        fr = new JFrame("JTextArea Demo");
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ta = new JTextArea("Text Area", 5, 30);
        JscrollPane jScrollPane = new JScrollPane(ta);
        fr.setLayout(new FlowLayout());
        fr.add(jScrollPane);
        fr.pack();
        fr.setVisible(true);
    }
    public static void main(String args[]) {
        JTextAreaDemo obj = new JTextAreaDemo();
        obj.init();
    }
}
 
























ຮູບ​ທີ 5.17 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.8


5.4.5 ຄາດ JCheckBox ​ແລະ JRadioButton
       JCheckBox ​ເປັນ​ຄາ​ດທີ່​ໃຊ້​ໃນ​ກາ​ນສ້າງ​ອອບ​ເຈັກ​ທີ່​ທຳ​ໜ້າ​ທີ່​ຄ່າ​ຍກັບ​ປຸ່ມ ​ໂດຍ​ໃຫ້​ຜູ້​ໃຊ້​ກົດ​ຊ່ອງ​ທີ່​ເປັນ​ສະ​ວິດ​ເພື່ອ​ເລືອກ​ຫລື​ບໍ່​ເລືອກ​ລາຍການ JCheckBox ຈະ​ມີ​ຂໍ້ຄວາມ​ຢູ່​ທາງ​ຂ້າງ​ເພື່ອ​ອະທິ​ບາຍ​ຄວາມ​ໝາຍ​ຂອງ​ລາຍການ JCheckBox ມີ constructor ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • public JCheckBox(String label)
  • public JCheckBox(String label, boolean state)
  • public JCheckBox(Icon icon)
  • public JCheckBox(Icon icon, boolean state)
  • public JCheckBox(String label, Icon icon)
  • public JCheckBox(String label, Icon icon, boolean state)
​ໂດຍ​ທີ່
  • label ຄື​ຂໍ້ຄວາມ​ທີ່​ຕ້ອງການ​ສະ​ແດງ​ໃນ JCheckBox
  • Icon ຄື​ໄອ​ຄອນ​ທີ່​ຕ້ອງການ​ສະ​ແດງ ​ໂດຍ​ທີ່
  • ​state ເປັນ​ຕົວ​ກຳນົດ​ສະຖານະ​ການ​ເລີ່​ມຕົ້ນ​ຂອງ JCheckBox ກໍລະນີ​ທີ່ constructor ບໍ່​ໄດ້​ກຳນົດ​ສະຖານະ​ການ​ເລີ່​ມຕົ້ນ​ຈະ​ຖື​ວ່າ​ມີຄ່າ​ເປັນ false (ບໍ່​ຖືກ​ເລືອກ)
ຄາດ JCheckBox ມີ​ເມ​ທອດ​ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • public String getLabel()
  • public Object[] getSelectedObjects()
  • public void setLabel(String label)
  • public void setSelected(boolean state)
​ໂປຣ​ແກຣມທີ 5.9 ສະ​ແດງ​ຕົວຢ່າງ​ການ​ໃຊ້ ​JCheckBox ໂດຍ​ໂປຣ​ແກຣມຈະ​ສ້າງ​
ເຟມທີ່​ມີ​ອອບ​ເຈັກ​ຊະນິດ JCheckBox ​ເພື່ອ​ໃຫ້​ຜູ້​ໃຊ້​ເລືອກ​ສາມ​ອອບ​ເຈັກ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 5.18
      ​ເຮົາ​ສາມາດ​ທີ່​ຈະ​ສ້າງ​ຕົວ​ເລືອກ​ທີ່​ເປັນ​ແບບ​​​Radio Button ໂດຍ​ໃຊ້ ​ໃນ​ກໍລະນີ​ຈະ​ກຳນົດ​ໃຫ້​ອອບ​ເຈັກ JRadioButton ຫລາຍ​ຕົວ​ຢູ່​ໃນ​ກຸ່ມ​ດຽວ​ກັນ ​ໂດຍ​ຢູ່​ໃນ​ກຸ່ມ​ຂອງ​ອອບ​ເຈັກ​ຂອງ​ຄາດ ​ButtonGroup ເຊິ່ງຈະ​ຕ້ອງ​ໃຊ້​ເມ​ທອດ add ()
      ຄາດ ButtonGroup ບໍ່​​ແມ່ນຄາດ​ທີ່​ເປັນສ່ວນ​ປະກອບ​ກຣາບຟິກ ​ແຕ່​ຈະ​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ເພື່ອ​ກຳນົດ​ກຸ່ມ​ຂອງ AbstractButton constructor ດັ່ງ​ນີ້
·        public ButtonGroup()
​ໂປຣ​ແກຣມທີ 5.9 ​ສະ​ແດງ​ຕົວຢ່າງ​ຂອງ​ການ​ສ້າງ JRadioButton ​ໂດຍ​ປັບ​ປ່ຽນ
JRadioButton​ໃນ​ໂປຣ​ແກຣມທີ 5.9 ​ໃຫ້​ຢູ່​ໃນ​ກຸ່ມ​ຂອງ​ອອບ​ເຈັກທີ່​ຊື່ ​ໂປຣ​ແກ​ຣມນີ້​ຈະ​ມີ​ຜົນ​ລັບ​ເປັນ​ສ່ວນ​ຕິດຕໍ່ກັບ​ຜູ້​ໃຊ້​ດັ່ງ​ຮູບ​ທີ 5.19

ໂປຣ​ແກຣມທີ 5.9 ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ JCheckBox
Text Box: import java.awt.FlowLayout;
import javax.swing.*;
public class JCheckBoxDemo {
    private JFrame fr;
    private JCheckBox c1, c2, c3;
    public void init() {
        fr = new JFrame("JCheckBox Demo");
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        c1 = new JCheckBox("Visual Basic");
        c2 = new JCheckBox("C++", false);
        c3 = new JCheckBox("Java", true);
        fr.setLayout(new FlowLayout());
        fr.add(c1);
        fr.add(c2);
        fr.add(c3);
        fr.pack();
        fr.setVisible(true);
    }
    public static void main(String args[]) {
        JCheckBoxDemo obj = new JCheckBoxDemo();
        obj.init();
    }
}
 



























ຮູບ​ທີ5.18 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.9
ໂປຣ​ແກຣມທີ 5.10 ຕົວຢ່າງ​ຂອງ​ການ​ສ້າງ​ອອບ​ເຈັກ JRadioButton
Text Box: import java.awt.GridLayout;
import javax.swing.*;
public class JRadioButtonDemo {
    private JFrame fr;
    private JRadioButton c1, c2, c3;
    private ButtonGroup chg;
    public void init() {
       fr = new JFrame("JRadioButton Demo");
       fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       c1 = new JRadioButton("Visual Basic");
       c2 = new JRadioButton("C++", false);
       c3 = new JRadioButton("Java", true);
       chg = new ButtonGroup();
       chg.add(c1);
       chg.add(c2);
       chg.add(c3);
       fr.setLayout(new GridLayout(3,1));
       fr.add(c1);
       fr.add(c2);
       fr.add(c3);
       fr.pack();
       fr.setVisible(true);
    }
    public static void main(String args[]) {
        JRadioButtonDemo obj = new JRadioButtonDemo();
        obj.init();
    }
}
 

































ຮູບ​ທີ 5.19 ຜົນ​ລັບ​ທີ​ໄດ້​ຈາກ​ການ​ລັນ​ໂປຣ​ແກຣມທີ 5.10

5.4.6 ຄາດ JComboBox
      JComboBox ​ເປັນ​ຄາດ​ທີ່​ໃຊ້​ໃນ​ການ​ສ້າງ​ອອບ​ເຈັກ​ທີ່​ເປັນລາ​ຍການ​ໃຫ້​ຜູ້​ໃຊ້​ສາມາດ​ເລືອກ​ໄດ້​ໂດຍ JComboBox ຈະ​ສະ​ແດງ​ລາຍການ​ປະກົດ​ໃຫ້​​ເຫັນ​ສະ​ເພາະ​ລາຍການ​ພຽງລາຍການ​ດຽວ ປົກກະຕິ​ກ່ອນ​ທີ່​ຈະ​ມີ​ການ​ເລືອກ​ລາຍການ JComboBox ຈະ​ສະ​ແດງ​ລາຍການ​ທຳ​ອິດ​ທີ່​ມີ​ຢູ່ ​ແລະ​ຫາກ​ມີ​ກາ​ນຄິກ​ເມົ້າ ​ອອບ​ເຈັກ JCoboBox ຈະ​ສະ​ແດງ​ລາຍການ​ທັງ​ໝົດ​ທີ່​ມີ​ຢູ່ ​ໂດຍ​ທີ່​ຄາດ JComboBox ມີ constructor ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • public JComboBox()
  • public JcomboBox([]Object objs)
ຄາດ JComboBox ມີ​ເມ​ທອດ​ຕ່າງໆ ທີ່​ສຳ​ຄັນດັ່ງ​ນີ້
  • public void addItem(Object item)
  • public void insertItemAt(Object item, int pos)
  • public Object getItem(int index)
  • public int getItemCount()
  • public Object getSelectedIndex()
  • public Object getSelectedItem()
  • public void setSelectedIndex(int pos)
  • public void setSelectedItem(Object item)
​ເຮົາ​ສາມາດ​ທີ່​ຈະ​ໃສ່​ລາຍການ​ລົງ​ໃນ​ອອບ​ເຈັກ ​JComboBox ໄດ້​ໂດຍ​ໃຊ້​ເມ​ທອດ
addItem(Object item) ຄາດ JComboBox ຍັງ​ມີ​ເມ​ທອດ setSelectedIndex(int pos) ​ແລະ setSelectedItem(Object item) ​ເພື່ອ​ໃຊ້​ໃນ​ການ​ເລືອກ​ໃຫ້​ອອບ​ເຈັກ JComboBox ສະ​ແດງ​ລາຍການທີ່​ຕຳ​ແໜ່​ງຫລື​ຂໍ້ຄວາມ​ທີ່​ຕ້ອງການ​ໃຫ້​ສະ​ແດງ​ໄດ້ ສ່ວນ​ເມ​ທອດ ​getSelectedIndex() ແລະ getSelectedItem() ​ໃຊ້​ໃນ​ການສະ​ແດງ​ຕຳ​ແໜ່​ງຫລື​ຂໍ້ຄວາມ​ທີ່​ຖື​​ກເລືອກ
      ​ໂປຣ​ແກຣມທີ 5.11 ສະ​ແດງຕົວ​ຢ່າງ​ເຟ​ມທີ່​ມີ​ອອບ​ເຈັກ​ຊະນິດ JComboBox ສະ​ແດງ​ຢູ່​ຄຳ​ສັ່ງ ​cb.addItem () ໃຊ້​ໃນ​ການ​ໃສ່​ລາຍການ​ຕ່າງໆ ລົງ​ໃນ​ອອບ​ເຈັກ cb ສ່ວນ​ຄຳ​ສັ່ງ ​cb.setSelectedItem(“Thailand”) ເປັນ​ກາ​ນກຳນົດ​ໃຫ້​ອອບ​ເຈັກ ​cb ເລືອກ​ສະ​ແດງ​ລາຍການ​ທີ່​ຊື່ ​Thailand ໂປ​ຣ​ແກຣມນີ້​ຈະ​ໃຫ້​ຜົນ​ລັບ​ທີ່​ເປັນ​ສ່ວນ​ຕິດ​ຕໍ່​ກັບ​ຜູ້​ໃຊ້​ດັ່ງ​ຮູບ​ສະ​ແດງ​ໃນ​ຮູບ​ທີ 5.20
ໂປຣ​ແກຣມທີ 5.11 ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ JComboBox
Text Box: import javax.swing.JComboBox;
import javax.swing.JFrame;
public class JComboBoxDemo {
    private JFrame fr;
    private JComboBox cb;
    public void init() {
       fr = new JFrame("JRadioButton Demo");
       fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       cb = new JComboBox();
       cb.addItem("New Zealand");
       cb.addItem("Thailand");
       cb.addItem("USA");
       cb.addItem("Japan");
       cb.setSelectedItem("Thailand");
       fr.add(cb);
       fr.pack();
       fr.setVisible(true);
    }
    public static void main(String args[]) {
       JComboBoxDemo obj = new JComboBoxDemo();
       obj.init();
    }
}
 


























ຮູບ​ທີ 5.20 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາກ​ການ​ລັນ​ໂປ​ຣ​ແກຣມທີ 5.11

5.4.7 ຄາດ JList
 ​JList ເປັນ​ຄາດ​ທີ່​​ໃຊ້​ສ້າງ​ອອບ​ເຈັກ​ທີ່​ເປັນສ່ວນ​ປະກອບ​ກຣາບຟິກ​ເພື່ອ​ໃຫ້​ຜູ້​ໃຊ້​ສາມາດ​ເລືອກ​ລາຍການ​ຄ່າ​ຍກັບ ​JComboBox ແຕ່​ຈະ​ແຕກ​ຕ່າງ​ກັນ​ບ່ອນ​ທີ່ JList ຈະ​ສະ​ແດ​ງລາຍ ການ​ຫລາຍ​ລາຍການ​ໂດຍ​ທີ່​ຄາ​ດ JList ມີ constructor ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
  • public JList()
  • public JList([]Object objs)
ຄາດ JList ມີ​ເມ​ທອດ​ທີ່​ສຳຄັນ​ດັ່ງ​ນີ້
·         public void setSelectedIndex(int index)
·         public void setSelectedIndices(int[]indices)
·         public void setSelectedValue(Object item, boolean state)
·         public void setSelectionMode(int selectionMode)
·         public int getSelectedIndex()
·         public int[] getSelectedIndices()
·         public Object getSelectedValue()
·         public Object[] getSelectedValues()
·         public int getSelectionMode()
​ເຮົາ​ສາມາດ​ທີ​ຈະ​ໃສ່​ລາຍການ​ລົງ​ໃນ​ອອບ​ເຈັກ JList ​ໄດ້​ຕອນ​ສ້າງ​ອອບ​ເຈັກ ​ໂດ​ຍ
ສາມາດ​​ໃສ່​ເຂົ້າ​ໄປ​ເປັນ​​ແບບ​ອາ​ເລ(​ໂດຍ​ອາ​ເລ​ຈະ​ມີ​ການ​ກ່າວ​ເຖິງ​ຢ່າງ​ລະອຽດ​ໃນ​ບົດທີ 8) ດັ່ງ​ຕົວຢ່າງ​ໂປຣ​ແກຣມທີ 5.12 ​ເຊິ່ງຈະ​ໄດ້ຜົນ​ລັບ​ດັ່ງ​ສະ​ແດງ​ໃນ​ຮູ​ບທີ 5.12




ໂປຣ​ແກຣມທີ 5.12 ຕົວຢ່າງ​ການ​ສ້າງ​ອອບ​ເຈັກ JList
Text Box: import java.awt.*;
import javax.swing.*;
public class JListDemo {
    private JFrame fr;
    private JList list;
    private String[] choices = {"Java SE", "Java EE", "Java ME"};
    public void init() {
        fr = new JFrame("JList Demo");
        fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        list = new JList(choices);
        list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
       fr.setLayout(new FlowLayout());
       fr.add(list);
       fr.pack();
       fr.setVisible(true);
    }
    public static void main(String args[]) {
       JListDemo obj = new JListDemo();
       obj.init();
    }
}
 

























ຮູບ​ທີ່ 5.21 ຜົນ​ລັບ​ທີ່​ໄດ້​ຈາ​ກການ​ລັນ​ໂປຣ​ແກຣມທີ 5.12

ไม่มีความคิดเห็น:

แสดงความคิดเห็น