JavaFX Встроить регион в определенную панель

Я хочу использовать графический редактор от tesis-dynaware (https://github.com/tesis-dynaware/graph-editor/wiki/1.%20Getting%20Started) на определенной панели.

К сожалению, модель представляет собой регион JavaFX. Есть ли способ встроить область JavaFX в разделенную панель? Конструктор сцен предлагает регион в разделе «Разное», но я не могу заполнить его данными. Я знаю, что регион не предназначен для такой работы...

Изменить: это код, и он не показывает graphEditor. Если я помещу его прямо в сцену, он сработает.

public class Flowcharteditor extends Application {


@FXML Pane pane = new Pane();


@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

    GraphEditor graphEditor = new DefaultGraphEditor();
    GModel model = GraphFactory.eINSTANCE.createGModel();
    graphEditor.setModel(model);
    addNodes(model);

    Scene scene = new Scene(root);

    pane.getChildren().addAll(graphEditor.getView());

    stage.setScene(scene);
    stage.show();
}


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


private GNode createNode() {

GNode node = GraphFactory.eINSTANCE.createGNode();

GConnector input = GraphFactory.eINSTANCE.createGConnector();
GConnector output = GraphFactory.eINSTANCE.createGConnector();

input.setType("left-input");
output.setType("right-output");

node.getConnectors().add(input);
node.getConnectors().add(output);

return node;
}

private void addNodes(GModel model) {

GNode firstNode = createNode();
GNode secondNode = createNode();

firstNode.setX(150);
firstNode.setY(150);

secondNode.setX(400);
secondNode.setY(200);
secondNode.setWidth(200);
secondNode.setHeight(150);

Commands.addNode(model, firstNode);
Commands.addNode(model, secondNode);

}

}


person cartilage    schedule 10.08.2015    source источник


Ответы (1)


Region — это подкласс Node. Вы можете встроить его, как и любой другой Node.

Согласно документации по вашей ссылке, т.е. е.

GraphEditor graphEditor = new DefaultGraphEditor();

Scene scene = new Scene(graphEditor.getView(), 800, 600);

все, что вам нужно сделать, это

splitPane.getItems().add( graphEditor.getView());
person Roland    schedule 10.08.2015
comment
Никто не может видеть, что ты там делаешь. Что такое панель? Что делает addNodes? и т. д. Если вам нужна помощь, вы должны предоставить MCVE. - person Roland; 10.08.2015
comment
Я вставил весь код, но панель — это просто стандартная панель, а методы взяты из примера по ссылкам. Они добавляют некоторые узлы к модели. - person cartilage; 10.08.2015
comment
Не знаю, как / если они изменяют размер представления после изменения родителя или насколько велико представление. Попробуйте BorderPane и setCenter вместо панели. - person Roland; 10.08.2015