Sto lavorando alla GUI del mio editor di livelli che ho creato in JavaFX e voglio poter ridimensionare l'oggetto canvas nelle nuove dimensioni del riquadro diviso. Sembra che tutto ciò che è stato provato abbia fallito. Ciò include il passaggio dell'oggetto riquadro e l'utilizzo della larghezza direttamente, tramite listener di dimensioni di finestra e associazione della proprietà width e height a quella del riquadro diviso. Qualche idea. Questo è ciò che loos come prima un ridimensionamento:JavaFX - Ridimensiona tela quando lo schermo viene ridimensionato
E dopo un ridimensionamento:
Qualcuno hasve tutte le idee. Il codice per la classe è piuttosto esteso, ma verrà incluso il codice per il ridimensionamento.
public Canvas canvas;
public String tabTitle;
public VBox layout;
public GraphicsContext g;
public Core core;
public CanvasTab(Core core, String tabTitle){
this.core = core;
this.canvas = new Canvas(core.scene.getWidth() - 70, core.scene.getHeight() - 70);
layout = VBoxBuilder.create().spacing(0).padding(new Insets(10, 10, 10, 10)).children(canvas).build();
this.g = canvas.getGraphicsContext2D();
g.setFill(Color.BLACK);
g.fillRect(0, 0, canvas.getWidth(), canvas.getHeight());
HBox.setHgrow(layout, Priority.ALWAYS);
this.setContent(layout);
this.setText(tabTitle);
canvas.widthProperty().bind(layout.widthProperty().subtract(20));
canvas.heightProperty().bind(layout.heightProperty().subtract(20));
}
public CanvasTab(Canvas canvas){
this.canvas = canvas;
}
L'area di disegno è (presumo) un ridimensionamento corretto, ma si riempie il rettangolo nero per la dimensione della tela quando viene creata la scheda di tela. Se vuoi usare una tela e vuoi ridimensionarla, probabilmente dovrai ridisegnare tutto (o almeno alcune cose) su un ridimensionamento. –