No.2ベストアンサー
- 回答日時:
自分がやったことないので恐縮ですが…
長押しの取得は、
java.awt.event.MouseEventの
「MOUSE_PRESSED」と「MOUSE_RELEASED」を受け取って、
その間の時間を測る…という方法ぐらいだと思います。
(MouseEvent、MouseListener、
java.awt.Component#addMouseListener()を参照ください)
時間を測定する方の処理ですが、これは面倒です。
「スレッドは身を滅ぼす」という格言もあるし。(←ないよ)
考えつくのは、
「(1)マウスが押されたら、スレッドを動かし、同時にフラグを立てる。
(2)マウスボタンが放されたらフラグをもとにもどす。
(3)スレッドの方を、100ミリ秒ぐらいのsleep()を挟んだ
ループにしておいて、毎回フラグを調べる。
30回フラグの状態が同じだったら、画面を開く処理を起動。」
「(1)マウスが押されたら、スレッドを動かす。
(2)スレッドの中で、あるオブジェクトにwait(3000)をする。
(3)マウスが放されたら、(2)のオブジェクトにnotify()をかける。
そして動きを解除する。
(4)notify()でなく再開したら、新しい画面を開く処理を起動」
このくらいですが、これらが妥当な方法かどうかは
わかりませんし、
自信もありません。すみません。
ついでに、「新しい画面を開く処理」は、DialogかFrameを生成して
setVisible(true)をすればいいと思います。
No.1
- 回答日時:
補足要求です。
(1)SwingではなくAWTを使うという前提ですね?
(2)ターゲットにしているJVMのバージョンを教えてください。
1.3以降なら、java.util.Timerが使えて
ちょっと楽になるのですが…。
説明不足していて大変すみません。
>(1)SwingではなくAWTを使うという前提ですね?
はい、そうです。
>(2)ターゲットにしているJVMのバージョンを教えてください。
JVMはPersonal Javaを使用しています、Personal JavaはJDK1.1です。
私の知りたいのは、ボタンにクリックしたらとか、プレスしたらとかのイベントは用意されているのですが、長押しした時のイベントはどのようにして取得すればよいのか?
Personal Javaを使用しているのでタイマーが使用できないと思われたので、スレッドかなと思いました。
もう一つは長押しされたときにまた別の画面を表示する方法が知りたいです。
お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 格安スマホ・SIMフリースマホ OPPOリノ3aですが時々、知らぬ間に画面が真っ暗になっている時があり、電源ボタンを長押しして再起動 1 2022/05/23 11:20
- 格安スマホ・SIMフリースマホ OPPOリノ3aですが時々、知らぬ間に画面が真っ暗になっている時があり、電源ボタンを長押しして再起動 2 2022/05/23 11:18
- iPhone(アイフォーン) iPhone8使ってますか時々電源が勝手にオフになりますゲームなどしてる時、ホームボタン、電源ボタン 1 2023/02/23 03:44
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- Android(アンドロイド) aquos wish2の挙動について 1 2023/03/26 20:56
- その他(動画サービス) あるエッチ動画サービスのボタンを押し間違ったばかりに、なぜか会員登録完了という画面が出てしまいました 6 2023/05/07 21:56
- iPhone(アイフォーン) iPhone14Pro買ったけど データ移行終わった!と思って画面を触ってもボタンを押しても画面は真 3 2022/09/21 23:35
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- iPhone(アイフォーン) iPhone の電源ボタンと音量ボタンを同時に長押しして開く緊急SOSと、ロック画面の「緊急」のボタ 2 2023/07/29 00:43
- Android(アンドロイド) dtab 電源がつかないのですが特殊な状況 助けてください 1 2022/04/08 01:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaでVBのDOEVENTSと同様の処...
-
doGetとdoPostの違い
-
tomcat(struts)で起動時に処理...
-
GASで、起動時間の最大値を超え...
-
C#のスレッド動作について
-
[Java] while(true)の意味
-
データ未入力時のエラー処理が...
-
DBのinsert/updateを1ボタンで...
-
エクセルVBAで、条件に一致する...
-
同一パッケージにあるクラスが...
-
「天声人語」をインターネット...
-
「タイプ初期化子が例外をスロ...
-
配列の重複する値とその個数を...
-
インスタンス参照でアクセスで...
-
エクセルのマクロでプリンタを...
-
Javaのメモリの管理
-
変数名の付け方
-
同じクラスにならない確率を教...
-
Labelコントロールの背景をグラ...
-
C#において、同じインスタンス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
doGetとdoPostの違い
-
Javaプログラムからポップアッ...
-
SwingUtilities.invokeLater(ne...
-
Javaでのデバッグコード削除
-
Tomcat高負荷時の設定について
-
JavaScriptからJAVAクラスを呼...
-
データ未入力時のエラー処理が...
-
アコーディオンメニューをアン...
-
ブラウザを閉じた後のサーバ側...
-
[Java] while(true)の意味
-
数値の定数を付ける時
-
Javaアプリケーション実行の返...
-
ラジオボタンの選択判定
-
スレッド1とスレッド2を交互に...
-
WPF C#でF10のイベント取得方法...
-
onBlurとonFocusの処理順序につ...
-
flush()メソッドについて・・・
-
ExcelVBA で文字列の特定の文字...
-
Java ファイルが生成させたか確...
おすすめ情報