2014-12-04 2 views
0

Как я получу белый прямоугольник в середине сцены. Я хочу сохранить свой собственный код и его высоту и ширину. Вероятно, он должен использоваться для установки макетов X и Y. Но я не знаю как. Когда я их установлю, он изменит его размер в верхнем левом углу.Настроить макеты холста

Код:

Pane paneCanvas = new Pane(); 

      final Canvas canvas = new Canvas(); 
      paneCanvas.setStyle("-fx-background-color: white;"); 
      canvas.setHeight(32); 
      canvas.setWidth(32); 

      paneCanvas.getChildren().add(canvas); 
      primaryStage.setTitle("Hello World!"); 
      primaryStage.setScene(scene); 
      primaryStage.show(); 

ответ

0

Попробуйте этот пример ... для позиции в середине сцены вы можете рассчитать ширину эту формулу:

layoutxcanvas = (widthscene/2) - (widthcanvas/2)

layoutycanvas = (heightscene/2) - (heightcanvas/2)

import java.awt.Graphics2D; 
import java.awt.Paint; 
import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.scene.Scene; 
import javafx.scene.canvas.Canvas; 
import javafx.scene.control.Button; 
import javafx.scene.layout.Pane; 
import javafx.scene.layout.StackPane; 
import javafx.scene.paint.Color; 

import javafx.stage.Stage; 

public class JavaFXApplication1 extends Application { 

    @Override 
    public void start(Stage primaryStage) { 
     Pane paneCanvas = new Pane(); 

      final Canvas canvas = new Canvas(); 
      paneCanvas.setStyle("-fx-background-color: black;"); 

      canvas.setHeight(32); 
      canvas.setWidth(32); 
      canvas.getGraphicsContext2D().setFill(Color.WHITE); 
      canvas.getGraphicsContext2D().fillRect(0, 0, 32, 32); 

      canvas.setLayoutX((300/2)-(32/2)); 
      canvas.setLayoutY((300/2)-(32/2)); 

      paneCanvas.getChildren().add(canvas); 
      Scene scene=new Scene(paneCanvas,300,300); 
      primaryStage.setTitle("Hello World!"); 
      primaryStage.setScene(scene); 
      primaryStage.show(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     launch(args); 
    } 
Смежные вопросы