0

我有一个带有多个 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 已显示或隐藏。

4

2 回答 2

0

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

于 2012-04-14T11:24:25.843 回答
0

听起来您需要FocusEventsFocusListeners。这些都支持所有JComponents喜欢JPanel, JLabel, 和JButton, 例如通过调用addFocusListener();

基本上 aFocusListener可以告诉您何时JComponent获得焦点(例如通过单击JComponent)以及何时失去焦点(例如通过单击不同的JComponent)。

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

于 2012-04-14T11:34:41.723 回答