- ベストアンサー
TextFieldでドラッグされたテキストを取り出したい
JTextFieldにある入力された文章をユーザがドラッグしたときにそのドラッグした部分のテキストを取り出したいのですが、どのように実装すればいいのでしょうか? 例えば、 明日は雨が降るかもね。 という文章がテキストフィールドに入力されたときに、ユーザが「雨が」の部分をマウスでドラッグしたらその「雨が」を獲得したいのです。 Googleで調べたのですがよくわからず困っています。分かる方お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
JTextField (正確に言うと JTextField のスーパークラス)の getSelectedText() というメソッドで、 現在選択されているテキストを取得できます。 ユーザーがマウスで選択した瞬間にイベントとして処理を行いたいのであれば、 javax.swing.event.CaretListener を使うとよいでしょう。 これは、キャレット(テキストフィールドなどに表示されるカーソル)の 位置が動いたり、選択範囲が変わったりすると、イベントが通知されます。
その他の回答 (3)
- bbt_tori
- ベストアンサー率0% (0/1)
setDragEnabled(true)で標準的なテキストのドラッグ&ドロップが可能になります。text/plainでの受け渡しになりますが、おそらくこれで大丈夫ではないかと。 少々古い(J2SE1.4)記事のですが他のコンポーネントの標準的なドラッグアンドドロップのサポートに関する記事がSunのサイトにありましたので添付しておきます。
補足
このようなやり方があるのですか。 参考にさせていただきます。
- Bonjin
- ベストアンサー率43% (418/971)
getSelectedTextというそのまんまの機能がありますが試してみましたか?
- pcbeginner
- ベストアンサー率46% (261/560)
試していませんが、 getSelectionStartメソッド getSelectionEndメソッド で選択位置を取得し、 getTextメソッド で取得した入力内容の文字列からsubstringしてみてはいかがでしょうか? 間違ってたら申し訳ありません。
お礼
無事にできました。 ありがとうございました。