JLabelとJSliderにそれぞれ違う機能を持たせるつもりですが、両方ともMouseListenerを使いたいと思っています。
どのコンポーネントをクリックしたかはどうやって判断すればいいですか?
例えばActionListenerを使えばsetActionCommand()であらかじめコマンドを決めておいて、if(e.getActionCommand().equals("COMMAND1")){}というふうに判断できますが、MouseListenerでもできますか?
できなければ、JLabelとJSliderそれぞれを継承させたクラスを作って以下のようにするつもりです。
コンパイルエラーな気もしますが(試してない)
普通はこうするよって例があれば教えてください。
java
1private class MyLabel extends JLabel{ 2 3 public String command = null; 4} 5 6private class MySlider extends JSlider{ 7 8 public String command = null; 9} 10 11/****************************************************/ 12 13MyLabel lab = new MyLabel("abc"); 14lab.addMouseListener(this); 15lab.command = "label"; 16 17MySlider sli = new MySlider(); 18sli.addMouseListener(this); 19sli.command = "slider"; 20 21/****************************************************/ 22 23public void mouseClicked(MouseEvent e){ 24 25 String com = e.getSource().command; 26 27 if(com.equals("label")) // 28 else if(com.equals("slider")) // 29}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/15 12:16
2017/03/16 00:08