Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมื่อไหร่ควรใช้เมธอด pack() ใน Java

เมธอด 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() ใน Java

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