java - 当选择 JLabel 时,在 JLabel 周围绘制边框,如按钮

标签 java swing

我试图在单击时在 JLabel 周围绘制边框。就像 JButtons 被绘制一样。

我以为这很容易,但我没能完成这项工作。

我试图通过在源代码中放置断点来弄清楚单击JButtons时会发生什么。但我迷失了,但是,我有一种感觉 javax.swing.plaf 及其子包就是我需要的。

我说得对吗?有没有更简单的方法来完成这项工作。

这是一个例子:

Example

最佳答案

您可以将 MouseListener 添加到标签中,并在 mousePressed/mouseReleased 方法中设置边框。这是一个简化的示例:

    label.addMouseListener(new MouseAdapter(){
        @Override
        public void mousePressed(MouseEvent arg0) {
            label.setBorder(BorderFactory.createLineBorder(Color.black));
        }
        @Override
        public void mouseReleased(MouseEvent arg0) {
            label.setBorder(null);
        }
    });

此外,作为替代方案,您可以制作一个看起来像标签的平面样式按钮。这个answer可能有用。

关于java - 当选择 JLabel 时,在 JLabel 周围绘制边框,如按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8112657/

相关文章:

java - 如何在 Java 迭代中分割字符串

java - 如何在没有迭代列表的情况下将 List<xxxx> 转换为 Map<primarykey of xxxx, xxxx>?

java - 两个停靠的组件,其中第二个组件填充剩余空间

java - Swing 应用程序中的 Hibernate 和 Spring

java - 在 JTextArea 中突出显示字符串

java - 在Java中初始化大量数组?

java - 如何在jsp中查找默认网关ip地址

java - 具有字符串属性的 WEKA 决策树

java - 禁用 Jtabbedpane 中的选项卡时,该选项卡的外观和感觉没有变化

java - 包含 ImageIcon 的 JLabel 不会重新绘制