대신하면서 (사실) 루프의 무언가, 그것은 2 개 클래스자바, 내가 가상 키보드 모듈을 개발했다
에게- KBM (모듈 자체) (포함에이 텍스트 난에 String 데이터의 값을 설정 Enter 키를 누릅니다 KBMListener에서 입력 및 부울 메인 프레임하고 무엇
- KBMListener
- 메인 프레임
) KBMListener에서 true로 변경 :
,536을MainFrame 프로그램을 실행하면 GUI가로드되고 "public void run()"에서 "while (true)"루프가 시작됩니다. 이 루프 모양은 다음과 같습니다.
while(true){
if(status_changed){
jTextArea.setText(getKbml().getData());
getKbml.setStatus_changed(false);
}
sleep(500);
}
부울 status_changed는 키보드 리스너에서 변경됩니다.
KBM은 가상 키보드입니다. 사용자가 텍스트를 입력하고 Enter 키를 누르면 KBMListener에서 String 데이터를 입력 된 텍스트로 설정하고 부울 status_changed를 true로 설정합니다.
KBML은 MainFrame을 KBM에 연결하고 사용자가 메인 프레임에서 텍스트 영역을 클릭 할 때마다 KBM에서 키보드를로드합니다.
Enter 키를 누를 때마다 0.5 초마다 또는 메인 프레임에 즉시 값을 가져옵니다.
while 루프는 정상적으로 작동하지만 1.6GHz 듀얼 코어 프로세서에서는 약 12 %의 CPU 사용률을 보입니다. 콜백에 대해 들었지만 어떻게 작동하는지 이해할 수 없습니다. 누군가가 나를 도울 수 있기를 바랍니다 ... 청취자를 피하십시오.
* 실제 코드를 코드로 게시하는 대신 단락 내에 잘못된 의사 코드를 게시 한 이유는 무엇입니까? 귀하의 질문은 현재 이해하기가 훨씬 어렵습니다. –
코드에서 시도한 것을 보여주십시오.이 코드의 큰 설명보다 훨씬 이해할 수 있습니다. –
왜 DocumentListener를 사용하고 싶지 않습니다.이 기능을 효율적으로 구현해야하는 이유는 무엇입니까? .. –