【问题标题】:How to remove border around buttons?如何去除按钮周围的边框?
【发布时间】:2021-02-15 21:31:53
【问题描述】:

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

【问题讨论】:

    标签: java border button grid-layout


    【解决方案1】:
    Border emptyBorder = BorderFactory.createEmptyBorder();
    yourButton.setBorder(emptyBorder);
    

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

    【讨论】:

      【解决方案2】:
      yourButton.setBorderPainted(false);
      

      【讨论】:

        【解决方案3】:

        在最新的 Java 版本中,需要调用 setContentAreaFilled(false) 来完全移除边框。为一些填充添加一个空边框:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 如果您的假设是正确的(对我来说似乎是合理的),那将对可用性产生不利影响。这些边框部分用于显示哪个按钮具有输入焦点。
          【解决方案5】:

          可以是这样的:

          yourButton.setBorder(null);
          

          【讨论】:

            【解决方案6】:

            虽然所有这些答案都以某种方式起作用,但我认为我会提供每个答案的更深入的比较以及示例。

            第一个默认按钮:

            边框绘制设置为 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);
                }
            });
            

            【讨论】:

              猜你喜欢
              • 2012-03-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-04-22
              • 2017-08-20
              相关资源
              最近更新 更多