use*_*152 5 java swing border padding jbutton
我有一个 JButton,其背景为绿色,边框为 LineBorder。我想在按钮和边框之间插入一个空格,一种填充。我试过 setMargin(new Insets(x,y,t,z)) 但它似乎不起作用。这是我的一段代码。
JButton JBtn=new JButton("sdfd");
JBtn.setBorder(BorderFactory.createLineBorder(Color.CYAN,5));
JBtn.setBackground(Color.GREEN);
JBtn.setMargin(new Insets(5,5,10,10));
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
边框是按钮的一部分,单击它们将单击按钮。您可以将背景设置为绿色,然后在背景上绘制边框:
jBtn.setBackground(Color.GREEN);
jBtn.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.CYAN, 5),
BorderFactory.createLineBorder(Color.BLACK, 20)));
Run Code Online (Sandbox Code Playgroud)

我试过 setMargin(new Insets(x,y,t,z)) 但它似乎不起作用。
因为如果你阅读文档,setMargin你会看到
[...] 如果在按钮上设置了非默认边框,则 Border 对象有责任创建适当的边距空间(否则此属性将被有效地忽略)。
此外,为类保留大写名称,重命名JBtn为jBtn.
对 的更改Border正在改变工作方式margins(它们似乎不再包含在确定布局的决策中)。
相反,您可以使用CompoundBorder,例如...
JBtn.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.CYAN, 5),
BorderFactory.createEmptyBorder(5, 5, 10, 10)));
Run Code Online (Sandbox Code Playgroud)