JPanel Padding на Java


107

У мене є питання щодо форматування мого додатка Swing Java. Це повинно бути досить простим, але у мене виникають труднощі з пошуком будь-якої допомоги (начебто, кожна тема стосується видалення будь-яких накладок за замовчуванням у JPanel). Текст у різних моїх JPanel обіймає сторони та верх, торкаючись кольорових рам: як я можу додати прокладки? Дякую.

Відповіді:


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

Що відбувається при зміні розміру Вікна? Це рішення не є гарним, чи не так?
Ендрю S

@Synox Legend дійсно! Зауважте, що ви можете поставити EmptyBorder як останній параметр для внутрішнього набивання
Hunter S

3

Коли вам потрібна прокладка всередині, JPanelзазвичай ви додаєте прокладку разом із використовуваним менеджером компонування. Є випадки, що ви можете просто розширити межу JPanel.


1
Додавання прокладки до менеджера макетів (у моєму випадку GridLayout) додає прокладку між сусідніми панелями, але не в межах окремої панелі. Але кордон зробимо, дякую за допомогу.
Коннор

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);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.