wspomnieć, że:
1) Musisz użyć zbudować w układach JavaFX (BorderPane, GridPane .... etc ...)
2) Nie ma automaticall.You musiał zaprogramuj to, aby to zrobić.
3) Powszechne jest na przykład, że chcesz wiedzieć, ekran (szerokość lub wysokość) bez paska zadań (Windows, Linux, Mac, Solaris) .W takim przypadku grasz z getVisualBounds()...
Głównego motyw
Pytasz o Responsive Design .Below jest przykładem tego, co chcesz make.Although nie jest najlepszym rozwiązaniem, z tym mam na myśli to może być modyfikowany w celu zwiększenia wydajności (ja też dodałem trochę kodu aby przesunąć okno, jeśli jest to StageStyle.UNDECORATED
Przeciągnij okno się zobaczyć):

import javafx.application.Application;
import javafx.scene.Cursor;
import javafx.scene.Scene;
import javafx.scene.input.MouseButton;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class FX extends Application {
int screenWidth = (int) Screen.getPrimary().getBounds().getWidth();
int screenHeight = (int) Screen.getPrimary().getBounds().getHeight();
Stage stage;
Scene scene;
int initialX;
int initialY;
@Override
public void start(Stage s) throws Exception {
// root
BorderPane root = new BorderPane();
root.setStyle("-fx-background-color:rgb(186,153,122,0.7); -fx-background-radius:30;");
// Responsive Design
int sceneWidth = 0;
int sceneHeight = 0;
if (screenWidth <= 800 && screenHeight <= 600) {
sceneWidth = 600;
sceneHeight = 350;
} else if (screenWidth <= 1280 && screenHeight <= 768) {
sceneWidth = 800;
sceneHeight = 450;
} else if (screenWidth <= 1920 && screenHeight <= 1080) {
sceneWidth = 1000;
sceneHeight = 650;
}
// Scene
stage = new Stage();
stage.initStyle(StageStyle.TRANSPARENT);
scene = new Scene(root, sceneWidth, sceneHeight, Color.TRANSPARENT);
// Moving
scene.setOnMousePressed(m -> {
if (m.getButton() == MouseButton.PRIMARY) {
scene.setCursor(Cursor.MOVE);
initialX = (int) (stage.getX() - m.getScreenX());
initialY = (int) (stage.getY() - m.getScreenY());
}
});
scene.setOnMouseDragged(m -> {
if (m.getButton() == MouseButton.PRIMARY) {
stage.setX(m.getScreenX() + initialX);
stage.setY(m.getScreenY() + initialY);
}
});
scene.setOnMouseReleased(m -> {
scene.setCursor(Cursor.DEFAULT);
});
stage.setScene(scene);
stage.show();
}
/**
* Main Method
*
* @param args
*/
public static void main(String[] args) {
launch(args);
}
}
Ale jak aplikacja będzie zmiana rozmiaru czy mam wewnątrz korzenia dominującej inny Pane i TabPane i tableview, które są ustawione na tej wymiarach? Czy automatycznie zmieni rozmiar wszystkich? –
Musisz zrobić te proporcje rozmiaru ekranu, jak również iirc. –