我是一个JButton,它的背景为绿色,边框为LineBorder。我想在按钮和边框之间插入一个空格,一种填充。 我尝试过使用setMargin(新的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));
有什么建议吗?
答案 0 :(得分:3)
边框是按钮的一部分,点击它们会点击按钮。您可以将背景设置为绿色,然后在背景上绘制边框:
jBtn.setBackground(Color.GREEN);
jBtn.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.CYAN, 5),
BorderFactory.createLineBorder(Color.BLACK, 20)));
我尝试过使用setMargin(新的Insets(x,y,t,z)),但它似乎无效。
因为如果你阅读setMargin
的文档,你会看到
[...]如果在按钮上设置了非默认边框,则Border对象有责任创建适当的边距空间(否则将有效地忽略此属性)。
此外,为类保留大写名称,将JBtn
重命名为jBtn
。
答案 1 :(得分:2)
对Border
的更改正在改变margins
的工作方式(它们似乎不再包含在用于确定布局的决策中)。
相反,您可以使用CompoundBorder
,例如......
JBtn.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createLineBorder(Color.CYAN, 5),
BorderFactory.createEmptyBorder(5, 5, 10, 10)));