ในขณะที่ทำงานกับ Java ฉันพบว่ามันยากที่จะวางตำแหน่งหน้าต่างหลักในกึ่งกลางของหน้าจอเมื่อฉันเริ่มแอปพลิเคชัน
มีวิธีใดที่ฉันสามารถทำได้? ไม่จำเป็นต้องอยู่กึ่งกลางแนวตั้งการวางแนวนอนเป็นเป้าหมายที่สำคัญสำหรับฉัน แต่การจัดตำแหน่งแนวตั้งก็ยินดีต้อนรับ
ในขณะที่ทำงานกับ Java ฉันพบว่ามันยากที่จะวางตำแหน่งหน้าต่างหลักในกึ่งกลางของหน้าจอเมื่อฉันเริ่มแอปพลิเคชัน
มีวิธีใดที่ฉันสามารถทำได้? ไม่จำเป็นต้องอยู่กึ่งกลางแนวตั้งการวางแนวนอนเป็นเป้าหมายที่สำคัญสำหรับฉัน แต่การจัดตำแหน่งแนวตั้งก็ยินดีต้อนรับ
คำตอบ:
ฉันทำเช่นนี้เสมอ:
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
ที่this
เป็น JFrame ที่เกี่ยวข้อง
setLocationRelativeTo(null)
จะอยู่ตรงกลางของจอภาพหลักแม้ในการตั้งค่าหลายจอภาพ
ใช้ setLocationRelativeTo(null)
null
วิธีการนี้มีผลพิเศษเมื่อคุณผ่านมัน ตามที่ Javadoc:
หากองค์ประกอบนั้นเป็นโมฆะหรือ GraphicsConfiguration ที่เกี่ยวข้องกับส่วนประกอบนี้จะเป็นค่าว่างหน้าต่างจะถูกวางไว้ที่กึ่งกลางของหน้าจอ
สิ่งนี้ควรทำหลังจากตั้งค่าขนาดหรือการโทรpack()
แต่ก่อนการตั้งค่าสามารถมองเห็นได้เช่นนี้:
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
setLocationRelativeTo
ควรใช้หลังจาก pack () การเรียกใช้เมธอด
.setSize()
ดูเหมือนว่าวิธีการที่ควรจะเรียกว่าหลังจากที่
คุณสามารถโทรJFrame.setLocationRelativeTo(null)
ไปที่กลางหน้าต่าง ตรวจสอบให้แน่ใจว่าได้ใส่สิ่งนี้มาก่อนJFrame.setVisible(true)
setLocationRelativeTo
ควรใช้หลังจาก pack () การเรียกใช้เมธอด
ง่ายเหมือนนี้ ...
setSize(220, 400);
setLocationRelativeTo(null);
หรือหากคุณใช้เฟรมให้ตั้งค่าเฟรมเป็น
frame.setSize(220, 400);
frame.setLocationRelativeTo(null);
สำหรับการชี้แจงจากเอกสาร :
หากองค์ประกอบนั้นเป็นโมฆะหรือ GraphicsConfiguration ที่เกี่ยวข้องกับส่วนประกอบนี้จะเป็นค่าว่างหน้าต่างจะถูกวางไว้ที่กึ่งกลางของหน้าจอ
ฉันใช้ NetBeans IDE 7.2.1 เป็นสิ่งแวดล้อมนักพัฒนาของฉันและคุณมีตัวเลือกในการกำหนดค่าคุณสมบัติ JForm
ในคุณสมบัติของ JForm ไปที่แท็บ 'รหัส' และกำหนดค่า 'สร้างศูนย์' คุณจะต้องตั้งค่านโยบายขนาดฟอร์มเป็น 'สร้างรหัสการปรับขนาด' ก่อน
ฉันใช้ NetBeans IDE 7.3 และนี่คือวิธีที่ฉันใช้เกี่ยวกับการรวมศูนย์ JFrame ของฉันตรวจสอบให้แน่ใจว่าคุณคลิกที่แผง JFrame และไปที่แถบคุณสมบัติ JFrame ของคุณคลิกที่แถบรหัสและเลือกศูนย์สร้างกล่องกาเครื่องหมาย
ถ้าคุณใช้ NetBeans เพียงคลิกที่เฟรมในมุมมองออกแบบจากนั้นแท็บรหัสบนคุณสมบัติของมัน ถัดไปตรวจสอบ 'สร้างศูนย์' ที่จะทำให้งานเสร็จ
หากคุณใช้อย่างชัดเจนsetPreferredSize(new Dimension(X, Y));
จะเป็นการดีกว่าที่จะใช้:
setLocation(dim.width/2-this.getPreferredSize().width/2, dim.height/2-this.getPreferredSize().height/2);
คุณสามารถใช้วิธีนี้ซึ่งอนุญาตให้ JFrame อยู่กึ่งกลางและเต็มหน้าจอในเวลาเดียวกัน
yourframe.setExtendedState(JFrame.MAXIMIZED_BOTH);
ใน Net Beans GUI - ไปที่ jframe ( คลิกขวา)บนJFrameในนาวิเกเตอร์) คุณสมบัติภายใต้รหัส , นโยบายรูปแบบขนาดของสถานที่ให้เลือกสร้างโค้ดปรับขนาด ในหน้าต่างเดียวกันให้เลิกเลือกสร้างตำแหน่งและทำเครื่องหมายสร้างขนาดและศูนย์เห็บสร้างขนาดและศูนย์
เพลิดเพลินกับการเขียนโปรแกรม Ramana