JPanel Padding ใน Java


107

ฉันมีคำถามเกี่ยวกับการจัดรูปแบบสำหรับแอปพลิเคชัน Java Swing ของฉัน มันควรจะค่อนข้างตรงไปตรงมา แต่ฉันมีปัญหาในการค้นหาความช่วยเหลือใด ๆ (ดูเหมือนทุกหัวข้อจะเกี่ยวกับการลบช่องว่างเริ่มต้นใด ๆ ใน JPanel) ข้อความใน JPanels ต่างๆของฉันกอดด้านข้างและด้านบนแตะขอบสี: ฉันจะเพิ่มช่องว่างภายในได้อย่างไร? ขอบคุณ.

คำตอบ:


234

ตั้งรอบของคุณEmptyBorder ตัวอย่าง:JPanel

JPanel p =new JPanel();
p.setBorder(new EmptyBorder(10, 10, 10, 10));

45
หรือคุณสามารถเพิ่มช่องว่างเพิ่มเติมรอบ ๆ เส้นขอบที่มีอยู่:p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
Synox

จะเกิดอะไรขึ้นเมื่อมีการปรับขนาดหน้าต่าง วิธีการแก้ปัญหานี้ไม่ดีหรือไม่?
Andrew S

@Synox Legend แน่นอน! โปรดทราบว่าคุณสามารถใส่ EmptyBorder เป็นพารามิเตอร์สุดท้ายสำหรับช่องว่างภายใน
Hunter S

3

เมื่อคุณต้องการช่องว่างภายในJPanelโดยทั่วไปคุณจะเพิ่มช่องว่างภายในด้วยตัวจัดการเค้าโครงที่คุณใช้อยู่ มีหลายกรณีที่คุณสามารถขยายขอบของไฟล์JPanel.


1
การเพิ่มช่องว่างภายในตัวจัดการโครงร่าง (ในกรณีของฉันคือ GridLayout) จะเพิ่มช่องว่างระหว่างแผงที่อยู่ติดกัน แต่ไม่ใช่ภายในแผงควบคุมแต่ละแผง แต่ชายแดนจะทำอย่างไรขอบคุณสำหรับความช่วยเหลือ
Connor

3

ฉันจะสมมติว่า JPanel ของคุณมี JTextField เพื่อประโยชน์ในการสาธิต

ส่วนประกอบเหล่านี้มีJTextComponent#setMargin()วิธีการที่ดูเหมือนว่าคุณกำลังมองหา

หากคุณกำลังมองหาขอบว่างขนาดใดก็ได้รอบข้อความของคุณให้ใช้ EmptyBorder


0
JPanel p=new JPanel();  
GridBagLayout layout=new GridBagLayout(); 
p.setLayout(layout); 
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill=GridBagConstraints.HORIZONTAL; 
gbc.gridx=0;   
gbc.gridy=0;   
p2.add("",gbc);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.