JavaFX クライアントを開発しています。2ペインのソフトウェアです。Application_1左ペインは、クライアント ( 、Application_2など)用に開発されたいくつかのアプリケーション (レイアウトが異なる) を示すリストです。右側のペインは、 が表示される場所Application_Nです。
ソフトウェアの右側のペインに表示されるアプリケーションには、次の Java クラス階層があります。
BorderPane -> Application(私が開発したアプリケーションクラス)。
Applicationクラスには、フォームを含むNode属性 ( Nodebody;) があり、このフォームにはField.
アプリケーションが前述の右側のペインに表示されている場合、 メソッドrequestFocus()を呼び出します。このメソッド (JavaFX クラスから上書きされたもの) は、前述のフィールドのNodeフォーカス (今回requestFocus()は JavaFX クラスの元のメソッドを使用) を要求する義務があります。 Node.
この手順はうまくいきます。ただし、問題は、ボディScrollPaneを含むa を追加する場合です。は、ボディ内のフィールドへのリクエスト フォーカス メソッドを許可していないようですNode。ScrollPane
以下に記述されたコードは、Application.javaからのものです。
Node body;
body = getBody(); // getBody() builds the UI of this application
scrollPanel = new ScrollPane();
scrollPanel.setHbarPolicy(ScrollBarPolicy.AS_NEEDED);
scrollPanel.setVbarPolicy(ScrollBarPolicy.AS_NEEDED);
scrollPanel.setFitToWidth(true);
scrollPanel.setFitToHeight(true);
scrollPanel.getStyleClass().add("application");
scrollPanel.setContent(body);
this.setCenter(scrollPanel);
...
そして、アプリケーションが表示されるときに、以下のコードが実行されます。
public void create(){
requestFocus();
}
@Override
public void requestFocus(){
accountField.requestFocus(); //using the method from the JavaFX node class
}
階層にスクロール ペインを配置すると、問題が発生することを繰り返します。誰かがこれに対するコメントまたは解決策を持っていれば、私は感謝しています。ありがとうございました。