簡體   English   中英

如何去除按鈕周圍的邊框?

[英]How to remove border around buttons?

我有一個帶有 GridLayout 的 JPanel。 在網格的每個單元格中,我都有一個按鈕。 我看到每個按鈕都被灰色邊框包圍。 我想刪除這些邊框。 有人知道怎么做嗎?

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

有關邊框的更多詳細信息,請參閱BorderFactory

yourButton.setBorderPainted(false);

在最新的 Java 版本中,需要調用 setContentAreaFilled(false) 來完全移除邊框。 為一些填充添加一個空邊框:

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

我認為邊框很可能是按鈕 GUI 的一部分。 您可以嘗試在所有按鈕上調用.setBorder(null)看看會發生什么!

它可以是這樣的:

yourButton.setBorder(null);

雖然所有這些答案都以某種方式起作用,但我想我會提供一些更深入的比較以及示例。

第一個默認按鈕:

在此處輸入圖像描述

邊框繪制設置為 false 的按鈕將刪除邊框和懸停動作,但保留填充:

button.setBorderPainted(false);

在此處輸入圖像描述

帶有空邊框或空邊框的按鈕會移除邊框、懸停動作和填充:

button.setBorder(BorderFactory.createEmptyBorder());

或者

button.setBorder(null);

在此處輸入圖像描述

具有空邊框和尺寸的按鈕會刪除邊框和懸停動作並將填充設置為提供的值:

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

在此處輸入圖像描述

最后,將這些與背景和懸停動作相結合,以獲得在懸停時突出顯示的自定義遮罩按鈕:

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

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM