【问题标题】:JavaFX Embedd a Region into a specific PaneJavaFX 将区域嵌入到特定窗格中
【发布时间】:2015-08-10 21:13:55
【问题描述】:

我想在特定窗格中使用来自 tesis-dynaware (https://github.com/tesis-dynaware/graph-editor/wiki/1.%20Getting%20Started) 的图形编辑器。

不幸的是,该模型是一个 JavaFX 区域。有没有办法将 JavaFX 区域嵌入到拆分窗格中? Scene Builder 在 Miscellaneous 下提供了一个 Region,但我无法用数据填充它。我知道没有指定区域以这种方式工作......

编辑: 这是代码,它不显示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);

}

}

【问题讨论】:

    标签: javafx region pane


    【解决方案1】:

    Region 是 Node 的子类。您可以像嵌入任何其他节点一样嵌入它。

    根据您的链接文档,i。 e.

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

    你要做的就是

    splitPane.getItems().add( graphEditor.getView());
    

    【讨论】:

    • 没有人可以看到你在那里做什么。什么是窗格? addNodes 是做什么的?等如果你需要帮助,你应该提供一个MCVE
    • 我已经输入了所有的代码,但是窗格只是一个标准窗格,方法取自链接中的示例。他们向模型中添加了一些节点。
    • 不知道一旦父级更改或视图有多大,他们如何/是否调整视图大小。尝试使用 BorderPane 和 setCenter 而不是 Pane。
    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多