如何删除按钮周围的边框?

时间:2010-04-26 11:57:58

标签: java border button grid-layout

我有一个带GridLayout的JPanel。在网格的每个单元格中,我都有一个按钮。我看到每个按钮都被灰色边框包围。我想删除这些边框。有人知道怎么做吗?

6 个答案:

答案 0 :(得分:11)

Border emptyBorder = BorderFactory.createEmptyBorder();
yourButton.setBorder(emptyBorder);

有关边框的详细信息,请参阅BorderFactory

答案 1 :(得分:11)

yourButton.setBorderPainted(假);

答案 2 :(得分:3)

我认为边框很可能是按钮GUI的一部分。您可以尝试在所有按钮上调用.setBorder(null),看看会发生什么!

答案 3 :(得分:3)

在最近的Java版本中,必须调用setContentAreaFilled(false)来完全删除边框。为某些填充添加空边框:

button.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
button.setContentAreaFilled(false);

答案 4 :(得分:2)

可以是这样的:

yourButton.setBorder(null);

答案 5 :(得分:1)

尽管所有这些答案都以某种方式起作用,但我认为我将对每个答案以及示例进行更深入的比较。

第一个默认按钮:

enter image description here

将边框绘制为false的按钮将删除边框和悬停动作,但保持填充:

button.setBorderPainted(false);

enter image description here

边框为空或边框为空的按钮将删除边框,悬停动作和填充:

button.setBorder(BorderFactory.createEmptyBorder());

button.setBorder(null);

enter image description here

带有空白边框和尺寸的按钮将删除边框和悬停操作,并将填充设置为提供的值:

border.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));

enter image description here

最后,将它们与背景和悬停动作结合在一起,以获取在悬停时突出显示的自定义遮罩按钮:

button.setBackground(Color.WHITE);
button.setBorderPainted(false);

button.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseEntered(java.awt.event.MouseEvent evt) {
        button.setBackground(Color.GRAY);
    }

    public void mouseExited(java.awt.event.MouseEvent evt) {
        button.setBackground(Color.WHITE);
    }
});

enter image description here