• ベストアンサー

TextFieldでドラッグされたテキストを取り出したい

JTextFieldにある入力された文章をユーザがドラッグしたときにそのドラッグした部分のテキストを取り出したいのですが、どのように実装すればいいのでしょうか? 例えば、 明日は雨が降るかもね。 という文章がテキストフィールドに入力されたときに、ユーザが「雨が」の部分をマウスでドラッグしたらその「雨が」を獲得したいのです。 Googleで調べたのですがよくわからず困っています。分かる方お願いします。

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

  • ベストアンサー
  • Gishi
  • ベストアンサー率57% (11/19)
回答No.3

JTextField (正確に言うと JTextField のスーパークラス)の getSelectedText() というメソッドで、 現在選択されているテキストを取得できます。 ユーザーがマウスで選択した瞬間にイベントとして処理を行いたいのであれば、 javax.swing.event.CaretListener を使うとよいでしょう。 これは、キャレット(テキストフィールドなどに表示されるカーソル)の 位置が動いたり、選択範囲が変わったりすると、イベントが通知されます。

marucha
質問者

お礼

無事にできました。 ありがとうございました。

その他の回答 (3)

  • bbt_tori
  • ベストアンサー率0% (0/1)
回答No.4

setDragEnabled(true)で標準的なテキストのドラッグ&ドロップが可能になります。text/plainでの受け渡しになりますが、おそらくこれで大丈夫ではないかと。 少々古い(J2SE1.4)記事のですが他のコンポーネントの標準的なドラッグアンドドロップのサポートに関する記事がSunのサイトにありましたので添付しておきます。

参考URL:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/swing/1.4/dnd.html
marucha
質問者

補足

このようなやり方があるのですか。 参考にさせていただきます。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

getSelectedTextというそのまんまの機能がありますが試してみましたか?

回答No.1

試していませんが、 getSelectionStartメソッド getSelectionEndメソッド で選択位置を取得し、 getTextメソッド で取得した入力内容の文字列からsubstringしてみてはいかがでしょうか? 間違ってたら申し訳ありません。

関連するQ&A