• ベストアンサー

TextAreaのダブルクリックイベントを発生させるには

PersonalJavaでPDA(WinCE)用のプログラムを書いて遊ぼうかと考えています。 従ってJDK1.1.8を使うので、Swingは使えません。 VisualBasicではTextBoxをマウスでダブルクリックすることでイベント発生できるのですが、TextAreaには標準ではイベント発生機能が無いようです。 どうプログラミングすれば、TextAreaのダブルクリックイベントを発生させる、もしくは同等の機能を持たせることができるでしょうか?

  • Java
  • 回答数2
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • yogawa
  • ベストアンサー率66% (4/6)
回答No.2

TextArea中の文字列をダブルクリックしたとき、単語が選択されて反転表示になりませんか? もしそれなら簡単で、TextArea#getSelectedTextで選択文字列を取得できます。 ただ、これは実行環境によって挙動が違うのかも知れません。

その他の回答 (1)

  • yogawa
  • ベストアンサー率66% (4/6)
回答No.1

TextAreaはComponentのサブクラスなので、addMouseListenerメソッドによってイベントリスナを設定できます。 イベントを受け取れば、MouseEvent#getClickCountによってクリック回数は分かります。 public void mouseClicked(MouseEvent me) { if (me.getClickCount() == 2) { System.out.println("Double clicked!"); } } こんな感じです。

yamahati
質問者

補足

補足説明させて下さい。VBのTextBoxでは、ダブルクリックすると、そのクリック位置にある単語をText1.SelTextとして獲得できます。 実は、VBでのプログラムの移植を考えていて、JavaのTextAreaでも,このダブルクリックした位置の単語を獲得したいのです。

関連するQ&A

  • シングルクリックとダブルクリックのイベントについて

    皆さん、こんばんは。 ちょっと疑問に感じたものがありましたので質問させてください。 今日のある質問、 内容はセルをシングルクリックした場合と ダブルクリックした場合のイベントの違い。 その質問に対する次の回答について。 (1)両方のイベントを機能させるとSelectionChangeが先になり  その後、同セルWクリックでDoubleClickイベントが機能します (2)SelectionChange のシングル・クリックとBeforeDoubleClickの  ダブル・クリックとはダブル・クリックの過程にシングル・クリック  があるので、論理的に、そのイベントは重なってシングル・クリックに  取られるはずです」 (1)はたぶん回答者の勘違いだろうと思うのでそれはいいのですが、 疑問に感じたのは(2)の方です。 (2)の意味は、ダブルクリックすると必ずシングルクリック 即ちSelectionChangeイベントのみが発生し、 BeforeDoubleClickは発生しないということでしょうか いままでBeforDoubleClickも発生する場合があると思っていましたので質問しました。 回答者がVBA熟知の方なので当方が何か勘違いしているのかも知れませんが・・・。 以上宜しくお願いいたします。

  • サブフォームでのダブルクリックイベント

    Access2003です。 フォームにサブフォームを設置し、直接テーブルを表示させています。 このサブフォームのテーブルのある行をダブルクリックしたら その行のデータを他のフォームのオブジェクトにセットしたいのですが 行や行のデータ全てを取得は出来るのですが、サブフォームのイベントがEnterとExitしかなくて、イベント発生が出来ません。 フォームのダブルクリックでXとYを見て…と思ったのですがサブフォーム上ではフォームのダブルクリックイベントが発生せず。 サブフォームのテーブルはユーザーがソートする事もあるのでベタに上にテキストボックス等を置く事は出来ません。 どうにかダブルクリックで動作させる方法はありませんでしょうか?

  • シートのクリックイベントは拾えないのか?

    ExcelのVBAに関する質問です。 さきほど「セルをクリック、またはダブルクリックしたときに○○したい」という質問に回答したのですが、「セルをクリックした」というイベントを拾う方法がわからず、ダブルクリックのパターンで回答しました。 Worksheetのイベントには BeforeDobuleClick や BeforeRightClick はあるのに Click や onClick というイベントがありません。オートシェイプなどのオブジェクトやフォーム上のオブジェクトには Click イベントがあるのですが、Worksheet になぜかありません。 これまでも同様のケースがあり、ネットで検索したりしたのですが、どれも SelectionChange で代用するものでした。それだと確かにマウスで別セルを選択したときにイベントが発生しますが、 ・キーボード操作でセルを移動してもイベントが発生する ・現在選択しているセルをクリックしてもイベントが発生しない と、厳密はマウスでクリックしたときと同じ動作になりません。 確か以前の質問で「あるセルをクリックするたびに、他のセルの値をカウントアップしたい」というようなものもありました。このような場合には、やはり Click に相当するようなイベントで処理したいです。 どうにかしてWorksheetでクリックイベントを拾うことはできないのでしょうか?

  • マウスイベントが発生しません

    マウスイベントに詳しい方教えて下さい。 Windows上のプログラミングで TImageコンポーネント上でマウスを左クリックさせると、 通常はOnMouseDown→OnClick→OnMouseUpの順で イベントが発生します。 ただ、たまにOnMouseUpイベントが発生せず エラーが発生してしまう事が起こってしまいました。 常に起こるわけではなく、何かのタイミングで起こります。 ただ、何が原因かは全然つかめていません・・・。 OnMouseUpイベントをキャンセルしてしまう 処理って存在するのでしょうか? 特にPeekMessageなどは使用していません。 もし、以上のような事が起こる原因をご存知の方、 お教え願えますか? よろしくお願い致します。

  • Orchis ダブルクリックで開かないときがある

    Windows7でランチャーソフトの Orchis(14.0419) を使っています。 デスクトップをダブルクリックすることで起動するようにしているのですが、 2/5くらいの確率で起動しないことがあります。 マウスのダブルクリックは機能しています。 コントロールパネルの「マウスのプロパティ」ではダブルクリックを100%認識しています。 ダブルクリック以外の起動方法も試しましたが、いまいち使いづらかったです。 ダブルクリックで起動しない理由は何が考えられるでしょうか?

  • ダブルクリックイベントで良いのかどうか?

    お世話になります。 ダブルクリックイベントで、そのセルを赤く色を塗り、尚且つ、 そのセルをダブルクリックした事により、別のワークブックを開き、 また、開いたワークブックのシートの中からある単語を検索して その属性を現在アクティブにしている、ブックのシートに記入しよう としていますが、 まず、下記の様に、ダブルクリックイベントで、セルを赤く塗るまではうまくいったのですが、別のブックを開く事がうまく出来ません。 記述が悪いのか、または標準モジュールに記述するべきなのか分からなく困っています。 どなたかご教授頂きたく宜しくお願い申し上げます。        記 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim Rng As Range, myRng As Range Set Rng = Range("c2:d2,f2") Set myRng = Intersect(Target, Rng) If myRng Is Nothing Then Exit Sub Rng.Interior.ColorIndex = xlColorIndexNone myRng.Interior.ColorIndex = 3 Cancel = True If Intersect(Target, Range("c2")) Then Workbooks.Open Filename:="C:\Documents and Settings\Owner\デスクトップ\台帳.xls" End If End Sub

  • VBでクリックイベントを発生させたいです

    VBのことについての質問なんですが 座標を指定してマウスカーソルを自動でクリックさせたり、何秒間か長押しさせたりするイベントの発生のさせ方はどうするんですか? またデスクトップの座標ではなく、フォーム内での座標指定はできますか? 回答よろしくお願いいたします

  • VB.NETでマウスクリックイベントを発生させたい。

    VB.NETでformの外で任意の座標でマウスクリックイベントを発生させたい。 formにはボタンがあり、そのボタンを押すを固定位置(formの外)でマウスの左クリックイベントを発生させたいのですがどのような手段を使えばいいでしょうか。 環境 Windows XP,VB2008 Exoress

  • マウスをクリックしたときのイベント

    VisualC++2010のButton Controlのイベントについて 「BN_CLICKED」イベントはマウスをクリックして、放した時に発生します。 クリックしたときのイベントは取れないのでしょうか? *設定時間、押しっぱなしで、次の処理に移るというプログラムを書きたいため  悩んでいます。

  • ダブルクリックを1回のクリックでできるようにする方法

    ノートパソコンにマウスをつなげて使用しているものです。 マイクロソフトのIntelliMouseというマウスというのをつなげています。 昨日マイクロソフトのサイトでIntelliPoint mouse software version 4.01というのを偶然発見し(http://www.microsoft.com/hardware/mouse/download.asp?FinishURL=%2Fdownloads%2Frelease%2Easp%3Freleaseid%3D32624%26redirect%3Dno) ダウンロードしてみたのですがインストール後ダブルクリックを1クリックでする機能が使えなくなりました。 正確に言うと左クリックをダブルクリックにする機能はあったのですが、どこかのボタンに普通のクリックを選んでおかなくてはならないようで、終了しようとするとエラーメッセージが出ます。 しょうがないので、このダウンロードしたソフトをコントロールパネルのアプリケーションの追加と削除からアンインストールしたのですが、その後もダブルクリックを1回のクリックでできる機能が使えません。たしかコントロールパネルのマウスのところで設定できたと思ったので見てみたのですが、そのような機能を選択する欄がありません。 デバイスマネージャーからマウスを削除し再起動してドライバーをインストールし直しても、マウスの設定の表示は変わりません。 どうすればもう1度ダブルクリックを1クリックでできるようにできるのでしょうか。実はおかしくなったパソコンは自分のではありません。他人のを少しの間借りているのです。月曜日までに解決しなくてはなりません。急いでます。 文章も読みにくくて申しわけありませんが、よろしくお願いします。