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 = (/ 2 widthscene) - (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); 
    }