私は仮想キーボードモジュールを開発しました、それは2つのクラスを含みます
- KBM(モジュール自体)(Enterキーを押すと、文字列データの値がKBMListenerで入力したテキストに設定され、KBMListenerでブール値がtrueに変更されます)
- KBMListener
- MainFrame
mainFrameの機能:
プログラムを実行すると、MainFrameはGUIをロードし、「public voidrun()」で「while(true)」ループを開始します。このループは次のようになります:
while(true){
if(status_changed){
jTextArea.setText(getKbml().getData());
getKbml.setStatus_changed(false);
}
sleep(500);
}
ブール値のstatus_changedは、キーボードリスナーで変更されます。
KBMは仮想キーボードです。ユーザーがテキストを入力してEnterキーを押すと、KBMListenerで文字列データがテキストタイプに設定され、ブール値status_changedがtrueに設定されます。
KBMLは、メインフレームをKBMに接続し、ユーザーがメインフレームのテキストエリアをクリックするたびにKBMからキーボードをロードします。
私が欲しいのは、0.5秒ごと、またはEnterキーを押すとすぐにメインフレームに値を取得することです。
ループは正常に機能していますが、1.6GHzデュアルコアプロセッサのCPU使用率は約12%です。コールバックについて聞いたのですが、どのように機能するのか理解できません。誰かが私を助けてくれることを願っています...ドキュメントリスナーを避けてください。