- ベストアンサー
swingでのテキストを選択の認識
swingでメモ帳のようなものを作っているんですが メモ帳などのコピーや切り取りの機能は メニューバーの表示を見ると 文字が選択されて始めてsetEnabled(false)が 解かれて機能するようなっていると 思うのですが、どのようなメソッドを使い 文字が選択されたなどの有無を認識しすればよいでしょうか?? if(editArea.選択を読み取るメソッド) { //選択されていれば切り取り editArea.cut(); } else { //そうでなければメニューバーは項目無効 cutAction.setEnabled(false); } といううようにしたいのですが、 select()を使うのかなと思うのですが。。 どなたかお願いします☆ ------------------------------------------ select(int selectionStart, int selectionEnd) 指定された始点と終点の間にあるテキストを選択します。 ------------------------------------------ のメソッドなど試したのですがうまくいきませんでした 記述の仕方が解かりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
selectは、テキストを選択するためのメソッドですね。 「テキストが選択されているのかどうか知りたい」ということなら、以下のようなものが使えると思います。 getSelectedText() 選択されているテキストを返します。テキストが空なら選択されていないと考えられます。 getSelectionStart(),getSelectionEnd() 選択されたテキストの開始位置と末尾位置を返します。これで両者が同じならテキストは選択されていないと考えられます。 テキストの選択状態などをリアルタイムに知りたいような場合は、更に、addCaretListenerメソッドで、CaretListenerというイベントリスナーを組み込み、処理するといいでしょう。これはキャレットの位置が変更されるとcaretUpdateメソッドを呼び出します。このへんについてはJavadocのapiを調べてみてください。
その他の回答 (1)
- ngsvx
- ベストアンサー率49% (157/315)
JTextComponent#getSelectionStart()と JTextComponent#getSelectionEnd() の戻り値で判断できると思います。
お礼
みなさんありがとうございます!! 2つも使えるメソッドがあったんですね。 勉強になります!!