2011-03-16 19 views
86

Java swing uygulamam için biçimlendirme sorusu var. Oldukça basit olmalı, ancak herhangi bir yardım bulmakta güçlük çekiyorum (Her konu JPanel'deki herhangi bir varsayılan dolgu kaldırılıyor gibi görünüyor). Çeşitli JPanels'mdeki metin, kenarlara ve üstlere sarılarak renkli kenarlara değiniyor: Nasıl dolgu ekleyebilirim? Teşekkür ederim.Java'da JPanel Dolgusu

cevap

196

JPanel'in etrafına bir EmptyBorder ayarlayın.
Örnek: JPanel İç yastıklar gerektiğinde

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

kullanın veya mevcut sınırın civarı bazı ekstra dolgu olabilir (yeni EmptyBorder (10, 10, 10, 10), yeni EtchedBorder())); – Synox

+3

İlgili bir notta: eğer birisi özel bir bileşen geliştiriyorsa (örn. boya *() 'yi geçersiz kılarsa, bunlar için kenarlıklar: http://www.javaswingcomponents.com/blog/custom-swing-component-development-tip-insets-matter. – TWiStErRob

+0

Pencere yeniden boyutlandırıldığında ne olur? Bu çözüm iyi değil o zaman? –

3

genellikle kullandığınız düzen yöneticisi ile dolgu ekleyin. JPanel'un kenarlığını genişletebileceğiniz durumlar var.

+1

Yerleşim yöneticisine dolgu ekleme (Benim durumumda, GridLayout), bitişik paneller arasında dolgu ekler ancak tek bir panelde olmaz. Ama bir sınır yapacaktır, yardım için teşekkür ederim. – Connor

3

JPanel'inizin demo için JTextField içerdiğini varsayacağım.

Bu bileşenler, aradığınız gibi görünen JTextComponent#setMargin() yöntemini sağlar. (BorderFactory.createCompoundBorder `p.setBorder:

Eğer metnin etrafında her boyutta boş bir sınırın arıyorsanız, iyi, 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);