- PR -

SWTで一定の条件下のみ、リスナーを動かしたい

投稿者投稿内容
かず
会議室デビュー日: 2005/06/14
投稿数: 9
投稿日時: 2005-12-12 16:08
横から失礼します。

左ボタンを押したときの処理と書いてあるのですが、右ボタン(右クリック)にするにはどのようにすればよいのでしょうか。

e.stateMask == SWT.BUTTON1のところをe.stateMask == SWT.BUTTON2にすればいいのでしょうか。
かず
会議室デビュー日: 2005/06/14
投稿数: 9
投稿日時: 2005-12-12 16:08
横から失礼します。

左ボタンを押したときの処理と書いてあるのですが、右ボタン(右クリック)にするにはどのようにすればよいのでしょうか。

e.stateMask == SWT.BUTTON1のところをe.stateMask == SWT.BUTTON2にすればいいのでしょうか。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-12-12 16:49
>e.stateMask == SWT.BUTTON1のところをe.stateMask == SWT.BUTTON2にすればいいのでしょうか。
まずやってみてはいかがでしょう?
それでうまくいかなかったら質問すればよいかと。
かず
会議室デビュー日: 2005/06/14
投稿数: 9
投稿日時: 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/06/14
投稿数: 9
投稿日時: 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));
}
という風にしたら、左ドラッグで線が、右クリックで色の変換ができました。お手数かけてすいませんでした。またよろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)