2017-03-14 13 views
0

私はjavaFXに大きなマルチラインTextAreaを持っています。 findコマンドとしてctrl-fを実装する良い方法はありますか?基本的に、検索されたテキストを強調表示します。javafxテキスト領域にctrl + fを実装する方法

私はキーストロークを聞く方法を知っていますが、どのようにA)テキストを強調表示し、B)テキストがあるTextAreaの部分にスクロールしますか?

+1

を定義することにより 'TextField'sシングルラインではありませんか? ctrl-fが押されたときを知るにはどうすればいいのですか?または強調表示を行う方法?または、他の何か? –

+0

ああ、それは私の悪いです。私はTextAreaを意味しました。そして、私は必要と思いますので)A)Ctrl + Fキーを押してヒットし、テキストを強調表示し、次にテキストが見つかるテキスト領域の部分にスクロールします。と。私は私の質問を修正します。 – Steve

+0

おそらくあなたの質問は広すぎます。あなたが何をしているのか、あなたがどこにいるのかを示す簡単な[MCVE]を作成できれば、答えが得られる可能性が高くなります。 –

答えて

1

私は同様のものを実装しました。ユーザーに何か検索を提供するCTRL + Fを聞くことができると仮定すると、これに似た方法で検索することができます。

private void findAndSelectString(String lookingFor) 
{ 
    Pattern pattern = Pattern.compile("\\b" + lookingFor + "\\b"); 
    Matcher matcher = pattern.matcher(input.getText()); //Where input is a TextInput class 
    boolean found = matcher.find(0); 
    if(found){ 
     input.selectRange(matcher.start(), matcher.end()); 
    } 
} 

あなたは、あなたが探し続けることができるように、最後の位置を保存したい場合がありますことを意味する再帰的にこれを実行したい場合があります....

+0

ありがとうございます。どのようにしてテキスト入力を実装しましたか?あなたは検索フィールドをポップアップしたのですか、またはCtrl-Fの直後に入力されたテキストをキャプチャしましたか? – Steve

+1

実際これは私が書いたスペルチェック機能から引き出されました。基本的に人はスペルチェックを打ち、エラーを探すためにテキスト入力を検索し、それらを介して1つずつ行くだろう。 –

関連する問題