我有一个JPanel
,我希望通过以下方式添加多个JLabel
:
只有一个JLabel
被放置在一行上(下一个JLabel
位于前一行之下)
每个JLabel
只占用最小可能宽度(即其内容的宽度);我需要这个,因为我在JLabel
上有鼠标点击监听器,当用户点击JLabel
附近某处时,我不希望它们被触发。
我试着这样做:
myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS));
myPanel.add(new JLabel("label1"));
myPanel.add(new JLabel("label2"));
但是通过这样的实现,我不仅可以点击JLabel
本身(即它的文本),而且还可以点击它附近,鼠标监听器仍会被触发。
我做错了什么?
答案 0 :(得分:1)
我需要这个,因为我在JLabels上有鼠标点击监听器
另一种方法是使用JButton,因此您不需要添加自定义事件处理。
然后你可以使用:
button.setBorderPainted( false );
button.setContentAreaFilled( false );
button.setOpaque( false );
,按钮看起来像一个标签。但是,您只需将ActionListener添加到按钮以进行正常的事件处理。