背景・課題
Java(正確にはKotlin)でデスクトップアプリを作っています。
そのアプリでフォーカスされないGUIをJavaFXを使って実装しようとしました。
しかしJavaFXにはそのような機能がないようです。
// Swingではこのようにできるようです frame.setFocusable(false); // JavaFXではできない stage.setFocusable(false);
そのためJavaFXを改造しようと考えています。
やりたいこと
JavaFXのソースを編集しリコンパイルしたいです。
発生している問題・エラーメッセージ
JDKに同梱されているJavaFXのソースを編集し、コンパイルしようとしました。
しかし一部のパッケージが見つからないためインポートできずエラーが発生しています。
// 存在しないパッケージ com.sun.javafx.beans.annotations com.sun.javafx.collections.annotations org.eclipse.swt.dnd
試してみたこと
パッケージがないということでどこからかダウンロードできないかと探しましたが見つかりませんでした。
より詳細な背景
ゲームパッドで文字入力を行うアプリを作ろうとしています。
ゲームパッドのどのボタンを押せばどの文字が入力されるか表示するGUIを実装しました。
しかしGUIを非表示状態から表示するとき、ブラウザなどのテキストボックスからフォーカスがアプリのウィンドウに奪われ、文字入力が行えなくなります。
// GUIを非表示にします stage.hide(); // GUIを表示します stage.show(); // ここでフォーカスが移動します
コンポーネント(GUIの部品)については requestFocus() をオーバーライドすればフォーカスできないようにできるようですが Stage.requestFocus() にはfinal修飾子がついているためそれができません。
上述のようにJavaFXではなくSwingを使えばこの問題は解決できると思いますが、今後も似たような問題にぶつかるかもしれないため質問しました。
初心者ですのでなにか常識はずれなことをしている場合はご指摘ください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。