选中后,在JLabel周围绘制边框,如按钮

时间:2011-11-13 15:40:25

标签: java swing

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

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

我尝试通过在源代码中添加断点来查明JButtons发生了什么。但是我迷路了,但是,我感觉javax.swing.plaf及其子包是我需要的。

我是对的吗?是否有更简单的方法来完成这项工作。

以下是一个例子:

Example

1 个答案:

答案 0 :(得分:1)

您可以在标签中添加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可能很有用。