通常,当我们希望标签可点击时,我们只需将其设为按钮即可。我最近确实使用了标签而不是按钮,因为我发现更容易控制外观(图标周围没有边框),并且我希望标签看起来不同,具体取决于应用程序显示的某些数据。但无论如何,我可能已经用 JButton 完成了整个事情。
如果您只希望JLabel 的一部分可点击,那就更复杂了。单击鼠标时,您需要检查相对鼠标坐标,以查看它是否对应于您希望可单击的标签部分。
或者,您可能希望改为查看JEditorPane。这使您可以将 HTML 放入一个 Swing 应用程序中,然后您可能可以实现一些 HyperLinkListener。
但是如果你确实需要一个标签来触发一个动作,就像你最初要求的那样,你可以像这样向它添加一个鼠标监听器:
noteLabel = new JLabel("click me");
noteLabel.addMouseListener( new MouseAdapter() {
public void mousePressed(MouseEvent e) {
System.out.println("Do something");
}
public void mouseEntered(MouseEvent e) {
//You can change the appearance here to show a hover state
}
public void mouseExited(MouseEvent e) {
//Then change the appearance back to normal.
}
});