我有一个带有多个Jlabels的左侧面板,我将它们用作按钮来更改主面板的内容,该内容使用CardLayout进行布局。
我无法完美地处理这些事件:
mouseEntered : to make highlight effect to the jlabel
mouseExited : to take off the highlight effect.
mouseClicked : to change the content of the main Panel and start some threads
这里无法找到事件或方法的问题告诉我已经点击了另一个Jlabel,所以我可以在mouseClicked事件中停止我的线程,
或
事件或方法告诉我,CardLayout中的JPanel已被显示或隐藏。
答案 0 :(得分:0)
您的问题是找不到合适的事件。我认为您正在使用可视化GUI构建器执行此操作,并期望解决所有开箱即用的问题。它不会那样工作,你需要编写一些真正的代码。例如,编写一个方法,您将从三个JLabel中的每一个的鼠标单击侦听器调用该方法。因此,您将安排为每个JLabel点击调用此方法。然后在方法中做适当的处理。这只是一个粗略的概述,您没有提供太多细节来提供任何进一步的建议。
答案 1 :(得分:0)
听起来您需要FocusEvents
和FocusListeners
。所有JComponents
JPanel
,JLabel
和JButton
都支持这些内容,例如通过调用addFocusListener();
基本上,FocusListener
可以告诉您JComponent
何时获得焦点(例如点击JComponent
)以及何时失去焦点(例如点击其他JComponent
1}})。
有关详细信息,请参阅http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/event/FocusListener.html