JavaのJPanelパディング


107

Java Swingアプリケーションのフォーマットに関する質問があります。それはかなり単純なはずですが、援助を見つけるのに苦労しています(すべてのトピックは、JPanelのデフォルトのパディングの削除に関するもののようです)。私のさまざまなJPanelsのテキストは、色の付いた境界線に触れて、側面と上部をハグします。パディングを追加するにはどうすればよいですか?ありがとうございました。

回答:


234

EmptyBorderあなたの周りを設定しますJPanel
例:

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

45
または、あなたはいくつかの余分なパディングは、既存の境界線をarroundのしていることができます:p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
Synox

ウィンドウのサイズを変更するとどうなりますか?この解決策は良くありませんか?
アンドリューS

@Synox Legendは確かに!EmptyBorderを内部パディングの最後のパラメーターとして指定できることに注意してください
Hunter S

3

JPanel一般的にパディングが必要な場合は、使用しているレイアウトマネージャでパディングを追加します。の境界を拡大できる場合がありますJPanel


1
レイアウトマネージャー(私の場合、GridLayout)にパディングを追加すると、隣接するパネル間にパディングが追加されますが、個々のパネル内にはパディングが追加されません。しかし、国境は大丈夫です、助けてくれてありがとう。
Connor

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);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.