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.

Jawaban:


234

Atur di EmptyBordersekitar Anda JPanel.
Contoh:

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

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.


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


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);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.