2011-11-06 1 views
0

정확한 layoutx/layouty 값을 찾기 위해 문제가 있습니다. 이 예에서 참조하시기 바랍니다 것은 :이 프로그램을 실행하면layoutx/layouty 값

package test; 

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.shape.Line; 

public class TestLinePosition 
    extends Application 
{ 
    private Line line; 

    private Scene getScene() 
    { 
    Group group = new Group(); 

    line = new Line(10, 10, 60, 10); 

    group.getChildren().add(line); 

    Scene scene = new Scene(group, 640, 480); 

    return scene; 
    } 

    @Override 
    public void start(Stage stage) throws Exception 
    { 
    stage.setScene(getScene()); 
    stage.show(); 
    System.out.println("x: " + line.getLayoutX() + ", y: " + line.getLayoutY()); 
    } 

    public static void main(String[] args) 
    { 
    Application.launch(args); 
    } 
} 

라인이 10에서 시작하여 예상대로 배치 할 것, 10. 그러나 layoutx 및 layouty 값은 수 0

, 0이다 아무도 나에게이 행동에 대한 설명을 주거나 실제 위치를 찾는 방법을 말해 주시겠습니까?

레이아웃 위치에 그림을위한 시작 위치를 혼합하지 마십시오,

답변

0

로저을 주셔서 감사합니다. 그룹에 노드를 추가 할 때 setLayoutX(xValue)을 호출하여 x 축의 레이아웃 위치를 설정합니다. 따라서 getLayoutX()을 호출하면 예상 값이 반환됩니다.

내 예를 (재)

package test; 

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.shape.Line; 
import javafx.stage.Stage; 

public class TestLinePosition extends Application { 

    private Line line;   

    public static void main(String[] args) { 
     Application.launch(args); 
    } 


    private Scene getScene() { 
     Group group = new Group(); 

     //layout position is x:0 and y:0 
     //painting starts at x:10 and y:10 
     line = new Line(10, 10, 60, 10); 
     //x position for layout 
     line.setLayoutX(100); 
     //y position for layout 
     line.setLayoutY(100); 

     group.getChildren().add(line); 

     Scene scene = new Scene(group, 640, 480); 

     return scene; 
    } 

    @Override 
    public void start(Stage stage) throws Exception { 
     stage.setScene(getScene()); 
     stage.show(); 
     System.out.println("x: " + line.getLayoutX() + ", y: " + line.getLayoutY()); 
     System.out.println("start x: " + line.getStartX() + ", start y: " + line.getStartY()); 
    } 
} 
0

내 좌표 라인을 갖는다 (10, 10) - (60, 10)의 로컬 좌표이다. LayoutXLayoutY은이 좌표를 그룹의 로컬 좌표 내에서 더 번역 할 수 있습니다.

  • 그룹 내부의 라인 레이아웃 범위를 알고 싶다면 line.getLayoutBounds().getMinX()을 사용할 수 있습니다.
  • 장면 내의 라인 위치를 알고 싶다면 line.localToScene(10, 10) 방법을 사용할 수도 있습니다.