0

CardLayoutでレイアウトされているメインパネルのコンテンツを変更するためのボタンとして使用する複数のJlabelを備えた左側のパネルがあります。

ここに画像の説明を入力してください

私はこれらのイベントを完璧に処理することはできません:

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

FocusEventsとが必要なようですFocusListeners。これらは、 、、およびのJComponentsようなすべてでサポートされています。JPanelJLabelJButtonaddFocusListener();

基本的に、は、がフォーカスを取得したとき ( をクリックした場合など) と、フォーカスを失ったとき (別の をクリックした場合など)FocusListenerを通知できます。JComponentJComponentJComponent

詳細については、 http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/event/FocusListener.htmlを参照してください。

于 2012-04-14T11:34:41.723 に答える
0

あなたの問題は、適切なイベントを見つけることではありません。ビジュアル GUI ビルダーを使用してこれを行っていると思いますが、すべてをすぐに解決できると期待しています。そのようには機能しません。実際のコードを書く必要があります。たとえば、3 つの JLabel のそれぞれのマウス クリック リスナーから呼び出すメソッドを記述します。したがって、JLabel のクリックごとにこのメソッドが呼び出されるように設定されます。次に、メソッドで適切な処理を行います。これは大まかな概要にすぎません。これ以上のアドバイスを提供するための詳細は提供されていません。

于 2012-04-14T11:24:25.843 に答える