コントローラーのリストをリロードする更新ボタンを取得しようとしていますが、ハードウェア チェックは何度呼び出しても 1 回しか実行されません。
Controller[] controllers = ControllerEnvironment.getDefaultEnvironment().getControllers();
これは、最初に実行されたときに正常に機能し、これをコンソールに出力することさえできます:
Jul 13, 2015 1:22:58 PM net.java.games.input.ControllerEnvironment log
INFO: Linux plugin claims to have found 2 controllers
これらの 2 つのコントローラーは、リストに適切に表示されます。
問題は、これが 1 回だけ実行され、ハードウェア スキャンが再実行されることはないため、コントローラーが切断されたときに表示されないことです。これと非常によく似た質問がスタックオーバーフローで既に見つかりましたが、それがどのように機能するか、またはLinuxで機能するかどうかはよくわかりません。
getDefaultEnvironment() が再実行されない理由と、これを強制する簡単な方法を教えてください。