JPanelに
MouseMotionListenerをつけて、
マウスが動くたびに、
mouseMovedを呼び出して、マウスの座標を
getX()と、getY()
を使って、取得するようなプログラムを作ったのですが、
JPanel上にJLabelを何枚か配置しており、
マウスが、JLabelの上に来ると、mousuMovedが認識できません。
ちなみに、JLabelにもmouseMovedをつけると、
取得する座標が、JLabel上の座標になってしまいます。
JPanel上の座標をJLabelの上にマウスが来ても正確に取得するにはどうしたらいいでしょうか?
No.2ベストアンサー
- 回答日時:
// 一応自分で計算しなくてもそういうの用意されているみたいね。
// http://download.oracle.com/javase/7/docs/api/jav …
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Hello extends JFrame implements MouseMotionListener{
public Hello(){
JLabel label1 = new JLabel("Hello, World!");
label1.setBackground(java.awt.Color.GREEN);
label1.setOpaque(true);
JLabel label2 = new JLabel("Hello, World!");
label2.setBackground(java.awt.Color.RED);
label2.setOpaque(true);
label2.addMouseMotionListener(this);
setLayout(new GridLayout(1, 2));
getContentPane().add(label1);
getContentPane().add(label2);
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLocationRelativeTo(null);
}
public void mouseDragged(MouseEvent e){
}
public void mouseMoved(MouseEvent e){
setTitle(Double.toString(SwingUtilities.convertPoint((Component)e.getSource(), e.getX(), e.getY() ,this ).getX()));
}
public static void main(String[] args) {
Hello h1 = new Hello();
h1.setVisible(true);
}
}
No.1
- 回答日時:
>ちなみに、JLabelにもmouseMovedをつけると、
>取得する座標が、JLabel上の座標になってしまいます。
JLabelの位置はわかるのですから、取得した座標に加算すればいいだけではないでしょうか。
あるいは、JPanelだけですべて処理したいのであれば、JLabelを使わず、すべてグラフィックとして描画し処理する、という形になるでしょう。JLabelを使っている理由が、単純にテキストを表示するだけということなら、描画に置き換えてもそれほど大変ではないように思えます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# ディスプレイの解像度とマウスの位置について 2 2023/05/21 19:01
- 生物学 脳の記録部位の集計方法について 1 2022/06/11 21:26
- 物理学 角運動量の式変形が分かりません。 4 2022/08/03 21:04
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- マウス・キーボード マウスって便利な入力器具ですね。マウスに変わって使われる次世代の入力器具はどんな物になるでしょう 6 2022/10/05 14:44
- 数学 線形代数の2次元直交座標系、極座標系についての問題がわからないです。 2 2022/07/16 20:42
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- 数学 線形代数の問題について教えて欲しいです。 3 2023/05/06 23:13
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- マウス・キーボード キーボードが動作しなくなりました。 4 2022/04/29 09:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
C#でのWNetAddConnection3の使...
-
長方形を描いて、それを移動さ...
-
未割り当てのローカル変数
-
ボタンの複数割り当てについて
-
C#から、C++で作成したdll内の...
-
C# 矢印キーの取得
-
JavaSwingのファンクションキー...
-
StrutsのiterateタグでListに格...
-
C# タスク非表示でタイトルバー...
-
C# visibleプロパティをfalseに...
-
[C#.net]スレッド化された別フ...
-
C#で別のFormへ複数の値を返そ...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
VBAで配列の計算
-
[JAVA]try 内の変数を外で!?
-
Javaで改行などが出来ないのです。
-
ORA-01858: 数値を指定する箇所...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
Junitテストでvoid戻り値メッソ...
-
C#で、あるクラスのメンバーす...
-
C#でのWNetAddConnection3の使...
-
C# visibleプロパティをfalseに...
-
unityでのC++エラーの原因がわ...
-
ボタンの複数割り当てについて
-
C#で別のFormへ複数の値を返そ...
-
エンターキーを押すとOKボタン...
-
LVM_SETITEMSTATEでListViewの...
-
ユーザーコントロールを動的に...
-
[C#.net]スレッド化された別フ...
-
C# 矢印キーの取得
-
C#から、C++で作成したdll内の...
-
C# DataGridView列カスタマイズ
-
C#でキーイベントが発生しない...
-
Thread.sleepのInterruptedExce...
-
C#でのオブジェクトのコピーに...
-
C# 半角カナの文字化けについて
-
文字列の置換
おすすめ情報