JPanel Padding in Java

107

Ich habe eine Formatierungsfrage für meine Java-Swing-Anwendung. Es sollte ziemlich einfach sein, aber ich habe Schwierigkeiten, Hilfe zu finden (Jedes Thema scheint das Entfernen von Standardauffüllungen in JPanel zu betreffen ). Der Text in meinen verschiedenen JPanels umschließt die Seiten und die Oberseite und berührt die farbigen Ränder: Wie kann ich Polster hinzufügen? Danke dir.

Connor
quelle

Antworten:

234

Stellen Sie eine EmptyBorderum Ihre JPanel.
Beispiel:

JPanel p =new JPanel();
p.setBorder(new EmptyBorder(10, 10, 10, 10));
Julien Vermillard
quelle
45
oder Sie können zusätzliche Polsterung um den vorhandenen Rand haben:p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
Synox
Was passiert, wenn die Fenstergröße geändert wird? Diese Lösung ist dann nicht gut, oder?
Andrew S
@ Synox Legende in der Tat! Beachten Sie, dass Sie EmptyBorder als letzten Parameter für die interne Auffüllung festlegen können
Hunter S
3

Wenn Sie im JPanelAllgemeinen eine Auffüllung benötigen , fügen Sie mit dem von Ihnen verwendeten Layout-Manager eine Auffüllung hinzu. Es gibt Fälle, in denen Sie nur den Rand des JPanel. Erweitern können .

jzd
quelle
1
Durch Hinzufügen von Auffüllungen zum Layout-Manager (in meinem Fall GridLayout) wird eine Auffüllung zwischen den benachbarten Bedienfeldern hinzugefügt, jedoch nicht innerhalb eines einzelnen Bedienfelds. Aber eine Grenze reicht aus, danke für die Hilfe.
Connor
3

Ich nehme an, Ihr JPanel enthält JTextField, um der Demo willen.

Diese Komponenten bieten eine JTextComponent#setMargin()Methode, nach der Sie suchen.

Wenn Sie nach einem leeren Rand beliebiger Größe um Ihren Text suchen, verwenden Sie EmptyBorder

Riduidel
quelle
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
quelle