เมธอด pack() อยู่ในคลาส Window ปรับขนาดเฟรมให้พอดีกับเนื้อหา (preferred sizes) ทางเลือกอื่นคือ setSize() หรือ setBounds() แตะระบุขนาดคงที่
pack() ดีกว่า setSize() เพราะ:
- ปล่อยให้ Layout Manager จัดการขนาด
- ปรับตัวตามแพลตฟอร์มและปัจจัยต่างๆ ได้ดีกว่า
- ไม่ต้องคำนวณขนาดด้วยมือ
ไวยากรณ์
public void pack()
ตัวอย่าง: ใช้ pack() กับปุ่มหลายตัว
import java.awt.*;
import javax.swing.*;
public class PackMethodTest extends JFrame {
public PackMethodTest() {
setTitle("Pack() Method Test");
setLayout(new FlowLayout());
setButton();
pack(); // เรียก pack() แทน setSize()
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
void setButton() {
for (int i = 1; i < 6; i++) {
add(new JButton("Button " + i));
}
}
public static void main(String args[]) {
new PackMethodTest();
}
}
ผลลัพธ์

แนวทางปฏิบัติ: เรียก pack() หลังเพิ่มคอมโพเนนต์ครบแล้ว ก่อน setVisible(true)