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.

Antworten:


234

Stellen Sie eine EmptyBorderum Ihre JPanel.
Beispiel:

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

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 .


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


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);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.