2017-02-04 9 views
-1

Im пытается создать приложение, которое создает новые перетаскиваемые узлы на довольно большой панели (которая является дочерней по отношению к scrollpane), но этот узел должен быть создан в центре экрана.Предварительно установленное значение порожденного узла

Вопрос: Существуют ли какие-либо методы для предопределения координат X, Y этих новых изображений?

Большое спасибо.

Например:

button.setOnAction(new EventHandler<ActionEvent>() { 
    @Override public void handle(ActionEvent e) { 
    Bounds bounds = scrollPane.getBoundsInLocal(); 
    Bounds screenBounds = scrollPane.localToScreen(bounds); 

    int mX = (int) screenBounds.getMinX(); 
    int mY = (int) screenBounds.getMinY(); 

    Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds(); 
    int x = (int) ((primScreenBounds.getWidth() - mX) /4); 
    int y = (int) ((primScreenBounds.getHeight() - mY) /4); 

    /* 
    System.out.println("X coords:" +x); 
    System.out.println("Y coords:" +y); 
    */ 

    pane.getChildren().addAll(new ImageView(imgvw.getImage())); 
    //somehow set coordinates of new ImageView 

    } 
});  

ответ

0

Как вы установили позицию de'pends на макет, который вы используете. Однако если вы используете Pane, вы могли бы использовать

  • layoutX и layoutYили
  • translateX и translateY
ImageView iv = new ImageView(imgvw.getImage()); 
iv.setLayoutX(x); 
iv.setLayoutY(y); 
pane.getChildren().add(iv); 

Другие макеты, например StackPane автоматически устанавливается layoutX и layoutY. В этом случае вы можете установить managed к false

iv.setManaged(false); 

или использовать соответствующие параметры для данного типа макета.

0

Это может зависеть от родительского ImageView s помещены в, хотя в общем, вы должны быть в состоянии позиционировать Node с с Region#positionInArea() (Region является суперкласс Parent). Обратите внимание, что это защищенный метод, то есть вы можете создать собственный родительский элемент (например, путем расширения StackPane).

Это, как говорится, есть много ParentNode s, каждый из которых обладает своим уникальным поведением. Попытайтесь убедиться, что желаемое поведение не может быть достигнуто с использованием каких-либо из них до создания вашей собственной реализации. (И поскольку вы не указываете какого-либо поведения позиционирования, его трудно сделать рекомендации)

+0

Ну, все, что я хотел бы сделать, это использовать 'int x' и' int y' coords как нерестилища для «нового ImageView», но Im не в состоянии понять это. : / – TomT

 Смежные вопросы

  • Нет связанных вопросов^_^