管理多个Jlabel的事件

时间:2012-04-14 10:50:15

标签: java events jlabel actionlistener cardlayout

我有一个带有多个Jlabels的左侧面板,我将它们用作按钮来更改主面板的内容,该内容使用CardLayout进行布局。

enter image description here

我无法完美地处理这些事件:

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已被显示或隐藏。

2 个答案:

答案 0 :(得分:0)

您的问题是找不到合适的事件。我认为您正在使用可视化GUI构建器执行此操作,并期望解决所有开箱即用的问题。它不会那样工作,你需要编写一些真正的代码。例如,编写一个方法,您将从三个JLabel中的每一个的鼠标单击侦听器调用该方法。因此,您将安排为每个JLabel点击调用此方法。然后在方法中做适当的处理。这只是一个粗略的概述,您没有提供太多细节来提供任何进一步的建议。

答案 1 :(得分:0)

听起来您需要FocusEventsFocusListeners。所有JComponents JPanelJLabelJButton都支持这些内容,例如通过调用addFocusListener();

基本上,FocusListener可以告诉您JComponent何时获得焦点(例如点击JComponent)以及何时失去焦点(例如点击其他JComponent 1}})。

有关详细信息,请参阅http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/event/FocusListener.html