JPanel Padding di Jawa

107

Saya punya pertanyaan format untuk aplikasi ayunan Java saya. Ini seharusnya cukup mudah, tetapi saya mengalami kesulitan menemukan bantuan apa pun (Setiap topik tampaknya berkaitan dengan penghapusan padding default di JPanel). Teks di berbagai JPanels saya memeluk sisi dan atas, menyentuh batas berwarna: bagaimana saya bisa menambahkan padding? Terima kasih.

Connor
sumber

Jawaban:

234

Atur di EmptyBordersekitar Anda JPanel.
Contoh:

JPanel p =new JPanel();
p.setBorder(new EmptyBorder(10, 10, 10, 10));
Julien Vermillard
sumber
45
atau Anda dapat memiliki beberapa padding tambahan di sekitar perbatasan yang ada:p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
Synox
Apa yang terjadi jika Jendela diubah ukurannya? Solusi ini tidak baik, bukan?
Andrew S
@Sync Legend memang! Perhatikan bahwa Anda dapat meletakkan EmptyBorder sebagai parameter terakhir untuk padding internal
Hunter S
3

Bila Anda membutuhkan padding di dalam JPanelbiasanya Anda menambahkan padding dengan layout manager yang Anda gunakan. Ada kasus di mana Anda dapat memperluas perbatasan file JPanel.

jzd
sumber
1
Menambahkan padding ke layout manager (Dalam kasus saya, GridLayout) menambahkan padding di antara panel yang berdekatan, tetapi tidak di dalam panel individual. Tapi perbatasan akan berhasil, terima kasih atas bantuannya.
Connor
3

Saya anggap JPanel Anda berisi JTextField, untuk kepentingan demo.

Komponen-komponen tersebut menyediakan JTextComponent#setMargin()metode yang sepertinya Anda cari.

Jika Anda mencari batas kosong dengan ukuran berapa pun di sekitar teks Anda, gunakan EmptyBorder

Riduidel
sumber
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);
Demetrio
sumber