2つのモニターがあります。私は2番目のモニターでEclipseを開いていますが、JavaFXコードを実行すると、JavaFXウィンドウは常に最初のモニターで開き、2番目のモニターにドラッグして使用するたびに開きます。JavaFXウィンドウを開くモニターを選択します
最初のモニターで開くと、シーン内のコンポーネントがロードされないため、これを行う必要があります。 2番目のモニターにドラッグするとロードされます。しかし、私は2番目のモニタを切断すると、正しくロードされます。
誰かお手伝いできますか?デフォルトでは、2番目のモニタでウィンドウを開くにはどうしたらいいですか?
NB:私の最初のモニターはMacBook Proで、2番目のモニターはiMacを外付けモニターとして使用しています。
のコメントへの対応:
コンポーネントがSCREEN1上で正しく読み込まれていないの問題は、任意の単純JavaFXのコードで発生
。たとえば、便宜上、@ Sergeyが回答として与えたコードを取ります。コード:
public class FXScreens extends Application {
@Override
public void start(Stage stage) {
VBox root = new VBox(10);
root.setAlignment(Pos.CENTER);
Scene scene = new Scene(root, 200, 250);
int index = 1;
for (Screen screen : Screen.getScreens()) {
Rectangle2D bounds = screen.getVisualBounds();
Button btn = new Button("Move me to Screen " + index++);
btn.setOnAction((e) -> {
stage.setX(bounds.getMinX() + 100);
stage.setY(bounds.getMinY() + 100);
});
root.getChildren().add(btn);
}
stage.setTitle("Screen Jumper");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
私は日食でまたは端末のいずれかでScreen2にからこれを起動すると、これは画面1に表示されるものです: ウィンドウのサイズを変更するには、私のコンポーネントを示すが、単にズームしません。それら。私はボタンをクリックすることもできません。
I画面2にこれをドラッグすると、それは次のようになる:まだ接続された二つの他のモニタを
、IはSCREEN1にEclipseとそこからコードを実行してドラッグすると、それが適切にロード:
他の画面にドラッグしてコンポーネントをロードすると、どの画面でも正常に機能することを追加する必要があります。
「スクリーン」で何かを解決する可能性があります。 [here](https://community.oracle.com/thread/2593365?tstart=0)を参照してください(現時点で完全回答になるまで時間はかかりません)。 – Itai
私は 'スクリーン'の使用について@sillyflyに同意します。しかし、あなたの記述からは、2番目の画面にのみロードされているコンテンツは、間違っていると思いますが、これは意図した動作ですか?そうでない場合は、それを調べて回避策を実装する代わりに修正する必要があります。 – hotzst
デュアルモニタのセットアップでテストできる例を教えてください。 –