2017-03-14 4 views
0

javaFX에 큰 다중 행 TextArea가 있습니다. 찾기 명령으로 ctrl-f를 구현하는 좋은 방법이 있습니까? 기본적으로 검색 한 텍스트를 강조 표시합니다.javafx 텍스트 영역에서 ctrl + f를 구현하는 방법

키 스트로크 수신 방법을 알고 있지만 어떻게해야합니까? A) 텍스트를 강조 표시하고 B) 텍스트가있는 TextArea 부분으로 스크롤하십시오.

+1

이 정의에 의해'TextField's 한 줄 아닌가요? ctrl-f를 눌렀을 때를 아는 법을 실제로 묻고있는 것은 무엇입니까? 또는 강조 표시를 수행하는 방법? 또는 다른 것? –

+0

오, 그건 나쁘다. 나는 TextArea를 의미했습니다. 그리고 그래, 그래서 내가) 줄 필요가 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

사실 이것은 내가 작성한 맞춤법 검사 기능에서 가져온 것입니다. 기본적으로 한 사람이 맞춤법 검사를하고 오류를 찾기 위해 텍스트 입력을 검색하여 하나씩 찾아갑니다. –

관련 문제