私はjavafxアプリを作成しています。重いプログラミング (重いマッピング) を使用します。ユーザーエクスペリエンスが遅くなるため、マルチスレッド化する必要があります。
可能であれば、コード全体を書き直したくありません。しかし、それは必要ではありません。ライフサイクル、スレッドの制御方法、スレッドに何かを依頼する方法を完全に説明してくれる人が必要です。
たとえば、fxml コントローラーでマッピング文字の完全なリストを提供します。
@FXML
private static final Map <Character, String> myMap = new HashMap <> ();
static {
myMap.put('a', "5");
myMap.put('b', "6");
myMap.put('c', "7");
myMap.put('d', "8");
//And so on...
}
次に、ボタンを押したときに入力テキストをエンコードします。
String codedTextOut;
textToCode = enteredText.getText();
StringBuilder encoderTextSB = new StringBuilder();
for (char codeChar : textToCode.toCharArray()) {
encoderTextSB.append(myMap.get(codeChar));
}
codedTextOut = encoderTextSB.toString();
これにより、ユーザー エクスペリエンスが遅くなります。ボタンを押したときにエンコード アクションを実行する別のスレッドを作成したいと考えています。スレッドのさまざまなプロパティを助けて説明してください。( http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htmをチェックアウトしましたが、あまり有益ではありません)