Home / ພື້ນຖານ Desktop app / Layout
ໃນການຂຽນ Java GUI ສິ່ງທຳອິດທີ່ເຮົາຈະພົບກັບໜ້າຈໍຂອງ Frame ຄື Layout ເຊິ່ງ Layout ເປັນຮູບແບບການຈັດວາງຕຳແໜ່ງຂອງ Component Controls ຕ່າງໆ ເຊັ່ນ Layout ສາມາດຈັດວາງພວກ Control ໃນຮູບແບບຂອງຕຳແໜ່ງ X,Y ຄືຈັດວາງໃນບ່ອນໃດຂອງ Frame ກໍ່ໄດ້ ໂດຍອ້າງອິງຈາກຕຳແໜ່ງ ໃນແກນ X ແລະ ແກນ Y ຂອງ Frame ແລະ ນອກຈາກນີ້ຍັງມີ Layout ໃນຮູບແບບອື່ນໆ ເຊັ່ນ Grid (ເປັນແບບຕາຕະລາງ) , Flow (ຈັດລຽງຕາມລຳດັບ) ແຕ່ປົກກະຕິແລ້ວ Layout ທີ່ເຮົາໄດ້ໃຊ້ ແລະ ຈະເປັນແບບ X,Y (AbsoluteLayout) ແລະ ພາຍໃນ Frame ຫຼື Panel ແຕ່ລ່ະຕົວກໍສາມາດຈະມີໄດ້ຫຼາຍໆ Layout
Java Absolute Layout (AbsoluteLayout)
Java Boder Layout (BorderLayout)
Java Box Layout (BoxLayout)
Java Card Layout (CardLayout)
Java Flow Layout (FlowLayout)
Java Grid Layout (GridLayout)
Java Grid Bag Layout (GridBagLayout)
Java Form Layout (FormLayout)
Java Mid Layout (MidLayout)
Java Spring Layout (SpringLayout)
Java Group Layout (GroupLayout)
ເປັນການຈັດວາງ Layout ໃນຮູບແບບຂອງ X,Y ໂດຍອ້າງຕຳແໜ່ງຂອງ Controls ຈາກຕຳແໜ່ງຕ່າງໆ ທີ່ຢູ່ໃນ Frame ຈາກແກນ X ແລະແກນ Y ຊຶ່ງທຸກໆ Controls ທີ່ສ້າງຂຶ້ນຈະຕ້ອງມີຕຳແໜ່ງ X,Y ເປັນຕົວລະບຸຕຳແໜ່ງດ້ວຍ ແລະ ສາມາດຈັດວາງໄດ້ຢ່າງອີດຫຼະ ຊຶ່ງ Layout ນີ້ຈະໄດ້ຮັບຄວາມນິຍົມຫລາຍທີ່ສຸດ ເພາະສາມາດໃຊ້ງານໄດ້ງ່າຍ
public class MyForm extends JFrame {
public MyForm() {
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
setTitle("Kittisay From");
JButton btn1 = new JButton("Button 1");
btn1.setBounds(41, 29, 89, 23);
add(btn1);
JButton btn2 = new JButton("Button 2");
btn2.setBounds(206, 50, 89, 23);
add(btn2);
JButton btn3 = new JButton("Button 3");
btn3.setBounds(53, 137, 89, 23);
add(btn3);
JButton btn4 = new JButton("Button 4");
btn4.setBounds(254, 94, 89, 23);
add(btn4);
}
public static void main(String[] args) {
MyForm frm = new MyForm();
frm.setVisible(true);
}
ເປັນຮູບແບບການຈັດວາງ Layout ທີ່ກຳນົດຕຳແໜ່ງແບບແນ່ນອນຄືຈະປະກອບດ້ວຍ NORTH (ດ້ານເທິງ), SOUTH (ດ້ານລຸ່ມ), EAST (ຂວາ), WEST (ຊ້າຍ), and CENTER (ເຄິ່ງກາງ) ຊຶ່ງຈະປະກອບດ້ວຍ 5 ຕຳແໜ່ງ
public class MyForm extends JFrame {
public MyForm() {
setLayout(new BorderLayout(0, 0));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
setTitle("Kittisay Java");
JButton button = new JButton("Button 1 (PAGE_START)");
add(button, BorderLayout.PAGE_START);
button = new JButton("Button 2 (CENTER)");
button.setPreferredSize(new Dimension(200, 100));
add(button, BorderLayout.CENTER);
button = new JButton("Button 3 (LINE_START)");
add(button, BorderLayout.LINE_START);
button = new JButton("Long-Named Button 4 (PAGE_END)");
add(button, BorderLayout.PAGE_END);
button = new JButton("5 (LINE_END)");
add(button, BorderLayout.LINE_END);
}
public static void main(String[] args) {
MyForm frm = new MyForm();
frm.setVisible(true);
}
ເປັນການຈັດວາງ Layout ແລະ Controls ແບບ ກ່ອງ ຄືສາມາດລຽງໄດ້ໃນແນວຕັ້ງ (Y) ແລະ ແນວນອນ (X) ໂດຍ Component Controls ທີ່ຖືກສ້າງຈະລຽງລຳດັບກັນໄປ ໃນຮູບແບບຂອງແນວຕັ້ງ ຫຼື ແນວນອນທີ່ກຳນົດຂຶ້ນ
public class MyForm extends JFrame {
public MyForm() {
setLayout(new BoxLayout(getContentPane(), BoxLayout.X_AXIS));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Kittisay Java");
setBounds(100, 100, 450, 300);
JButton btn1 = new JButton("Button 1");
btn1.setAlignmentX(Component.CENTER_ALIGNMENT);
add(btn1);
JButton btn2 = new JButton("Button 2");
btn2.setAlignmentX(Component.CENTER_ALIGNMENT);
add(btn2);
JButton btn3 = new JButton("Button 3");
btn3.setAlignmentX(Component.CENTER_ALIGNMENT);
add(btn3);
JButton btn4 = new JButton("Button 4");
btn4.setAlignmentX(Component.CENTER_ALIGNMENT);
add(btn4);
}
public static void main(String[] args) {
MyForm frm = new MyForm();
frm.setVisible(true);
}
ແບບແນວຕັ້ງ Y_AXIS
ເປັນການຈັດວາງ Layout ແບບລຳດັບຂັ້ນ ເຊັ່ນ ລຳດັບ 1 , 2 ,3 ,4 ໃນຮູບແບບຂອງ Flow ແຕ່ນອກຈາກນີ້ເຮົາຍັງສາມາດທີ່ຈະສະຫຼັບສຳດັບຂັ້ນຂອງ Layout ຈາກຊ້າຍໄປຂວາ (LEFT_TO_RIGHT) ຫຼື ຂວາໄປຊ້າຍ (RIGHT_TO_LEFT) ໄດ້ອີກດ້ວຍ
public class MyForm extends JFrame {
public MyForm() {
FlowLayout layout = new FlowLayout();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 457, 173);
setTitle("Kittisay Java");
JPanel panel = new JPanel();
panel.setLayout(layout);
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(new JButton("Button 1"));
panel.add(new JButton("Button 2"));
panel.add(new JButton("Button 3"));
panel.add(new JButton("Button 4"));
panel.add(new JButton("Button 5"));
panel.add(new JButton("Button 6"));
panel.add(new JButton("Button 7"));
panel.add(new JButton("Button 8"));
panel.add(new JButton("Button 9"));
add(panel);
}
public static void main(String[] args) {
MyForm frm = new MyForm();
frm.setVisible(true);
}
ສະຫຼັບການລຽງ RIGHT_TO_LEFT ຂວາ ໄປ ຊ້າຍ