Java Swing - setting margins on TextArea with Line

2020-02-14 02:59发布

As the title says, I am simply trying to set the margins (provide some padding) on a TextArea with a LineBorder set. Without setting the Border, .setMargins works fine. Here is the specific chunk of code.

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);

I have tried each of these:

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

but nothing affects the margins after I apply the border, the padding is always 0. Any ideas how to set the padding on the textArea with the border?

1条回答
劳资没心,怎么记你
2楼-- · 2020-02-14 03:30

What if you try adding a CompoundBorder , won't this do, this will give you almost same thing

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

CHECK THE MIDDLE JTextArea as OUTPUT

查看更多
登录 后发表回答