การจัดวางคอมโพเนนต์กราฟิก Layout Manager การจัดวางคอมโพเนนต์กราฟิก
ให้ลองศึกษา Code ต่อไปนี้ import javax.swing.*; import java.awt.*; class TestPanel{ public static void main(String s[]){ JFrame f = new JFrame ("Test"); JPanel p = new JPanel(); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); p.setBackground(Color.CYAN); p2.setBackground(Color.BLACK); f.add(p); f.add(p1); f.add(p2); f.setSize(100,100); f.show(true); }
ผลลัพธ์ที่ได้ ทำไม panel สีขาวไม่ปรากฏ เนื่องจากในการทำงานนั้นสีขาวจะเพิ่มเข้าไปในเฟรมก่อน แต่เมื่อมีการเพิ่ม panel สีดำ panel สีดำจะไปทับ สีขาวนั้น จะทำอย่างไรเมื่อต้องการให้แสดง panel ทั้งสองสี
ชนิดของ Layout Manager FlowLayout BorderLayout GridLayout CardLayout GridBagLayout
Method public void setLayout(LayoutManger mgr) Example ())
FlowLayout เป็นการจัดวาง component ที่วางเรียงลำดับจากซ้ายไปขวา ถ้าวางจนเต็มแล้วจะวางลงข้างล่างต่อไป 1 2 3 4 5 6
import javax.swing.*; import java.awt.*; class TestPanel{ public static void main(String s[]){ JFrame f = new JFrame ("Test"); JButton b1 = new JButton(" 1 "); JButton b2 = new JButton(" 2 "); JButton b3 = new JButton(" 3 "); f.setLayout(new FlowLayout()); f.add(b1); f.add(b2); f.add(b3); f.setSize(200,75); f.show(true); }
import javax.swing.*; import java.awt.*; class Test extends JFrame{ JButton b1,b2,b3; Test(){ b1 = new JButton(" 1 "); b2 = new JButton(" 2 "); b3 = new JButton(" 3 "); f.setLayout(new FlowLayout()); add(b1);add(b2);add(b3); setSize(200,75); setVisible(true); } public static void main(String s[]){ Test a = new Test();
BorderLayout เป็นการวาง component 5 ส่วน คือ CENTER, NORTH, SOUTH, EAST และ WEST การระบุตำแหน่งสามารถทำได้โดยเมธอด add()
GridLayout เป็นการวาง component ตามแถวและคอลัมน์ที่กำหนดไว้ โดยมี construction คือ public GridLayout() public GridLayout(int row, int col)
จงออกแบบ Layout เครื่องคิดเลข