6

タイトルが示すように、私は単にLineBorderが設定されたTextAreaにマージンを設定(パディングを提供)しようとしています。Borderを設定しなくても、.setMarginsは正常に機能します。これがコードの特定のチャンクです。

aboutArea = new JTextArea("program info etc.....");

Border border = BorderFactory.createLineBorder(Color.BLACK);

aboutArea.setSize(400, 200);
aboutArea.setBorder(border);
aboutArea.setEditable(false);
aboutArea.setFont(new Font("Verdana", Font.BOLD, 12));

add(aboutArea);

私はこれらのそれぞれを試しました:

aboutArea.setMargins(10,10,10,10);
.getBorders(aboutArea).set(10,10,10,10);
UIManager.put("aboutArea.margin", new Insets(10, 10, 10, 10));

しかし、境界線を適用した後、余白には何も影響しません。パディングは常に0です。境界線のあるtextAreaにパディングを設定する方法はありますか?

4

1 に答える 1

27

CompoundBorderを追加しようとすると、これは実行されません。これにより、ほぼ同じことが得られます。

JTextArea tarea = new JTextArea("program info etc.");
Border border = BorderFactory.createLineBorder(Color.BLACK);
tarea.setBorder(BorderFactory.createCompoundBorder(border, 
            BorderFactory.createEmptyBorder(10, 10, 10, 10)));

出力として中央のJTextAreaを確認してください

于 2012-04-23T05:26:47.777 に答える