gpt4 book ai didi

java - Swing:JPanel中的JLabels一对一宽度=内容宽度

转载 作者:行者123 更新时间:2023-12-02 12:51:12 26 4
gpt4 key购买 nike

我有一个 JPanel,我想通过以下方式添加几个 JLabel:

  • 一行中仅放置一个 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 本身(即它的文本),而且可以单击它附近的某个位置,并且鼠标监听器仍然会被触发。

我做错了什么?

最佳答案

I need this because I have mouse click listeners on JLabels

另一种方法是使用 JButton,这样您就不需要添加自定义事件处理。

然后你可以使用:

button.setBorderPainted( false );
button.setContentAreaFilled( false );
button.setOpaque( false );

按钮看起来像一个标签。但随后您只需向按钮添加一个 ActionListener 即可进行正常事件处理。

关于java - Swing:JPanel中的JLabels一对一宽度=内容宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44604169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com