- - PR -
SWTで一定の条件下のみ、リスナーを動かしたい
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-12 16:08
横から失礼します。
左ボタンを押したときの処理と書いてあるのですが、右ボタン(右クリック)にするにはどのようにすればよいのでしょうか。 e.stateMask == SWT.BUTTON1のところをe.stateMask == SWT.BUTTON2にすればいいのでしょうか。 |
|
投稿日時: 2005-12-12 16:08
横から失礼します。
左ボタンを押したときの処理と書いてあるのですが、右ボタン(右クリック)にするにはどのようにすればよいのでしょうか。 e.stateMask == SWT.BUTTON1のところをe.stateMask == SWT.BUTTON2にすればいいのでしょうか。 |
|
投稿日時: 2005-12-12 16:49
>e.stateMask == SWT.BUTTON1のところをe.stateMask == SWT.BUTTON2にすればいいのでしょうか。
まずやってみてはいかがでしょう? それでうまくいかなかったら質問すればよいかと。 |
|
投稿日時: 2005-12-12 17:01
失礼しました。ネット回線が落ちてしまって、中途半端な文になってしまいました。申し訳ありませんでした。
やりたいことはSWT:Eclipse3.0でペイントツールを作りたいのです。左クリックをドラッグしながら動かすと、線が自由に書けるようになりました。 lab = new Label(sh, SWT.NONE); lab.addMouseMoveListener(myMouseMoveListener); ・・・・ MouseMoveListener myMouseMoveListener = new MouseMoveListener() { public void mouseMove(MouseEvent e) { if (e.stateMask == SWT.BUTTON1) { x2 = e.x; y2 = e.y; GC gc=new GC(lab); gc.drawLine(x1,y1,x2,y2); gc.dispose(); x1=e.x; y1=e.y; } } }; 次は右クリックを使用し、色をつけたいのですが、ポップアップ機能ではなく、右クリックを一回押したら、赤になり、もう一度押したら青になるといったプログラムが書きたいのですが、 if (e.stateMask == SWT.BUTTON12) という風にして実行すると、右クリックを押しても小さい黒い点が出てきてしまいます。 右クリックを押したら色が変化するようなプログラムは作れるのでしょうか。 swt java 右クリックなどで検索するとほとんどがポップアップ機能のことが出てきてしまうので質問しました。よろしくお願いします。 |
|
投稿日時: 2005-12-12 19:00
わかりましたありがとうございました。
if (e.stateMask == SWT.BUTTON1)のSWT.BUTTON1のところを SWT.BUTTON2 SWT.BUTTON3 と設定し、マウスにはボタンが三つありました・・・ int icと設定し if(ic==0){ gc.setForeground(new Color(null,255,0,0)); }else if(ic==1){ gc.setForeground(new Color(null,0,255,0)); } という風にしたら、左ドラッグで線が、右クリックで色の変換ができました。お手数かけてすいませんでした。またよろしくお願いします。 |