我可以在JavaFXGUI中包含JavaFX折线图吗

我可以在JavaFXGUI中包含JavaFX折线图吗,java,javafx,linechart,scene,gridpane,Java,Javafx,Linechart,Scene,Gridpane,我想声明一个包含两个面板的JavaFXGridPane,左侧包含一个按钮。单击按钮后,右侧面板中将显示一个折线图。编码大概如下所示: public class FormLineChart extends Application { @Override public void start(Stage stage) { stage.setTitle("A Title"); //Create the grid for defining the GUI

我想声明一个包含两个面板的JavaFXGridPane,左侧包含一个按钮。单击按钮后,右侧面板中将显示一个折线图。编码大概如下所示:

public class FormLineChart extends Application {

    @Override 
    public void start(Stage stage) {
        stage.setTitle("A Title");
        //Create the grid for defining the GUI
        GridPane grid = new GridPane();
        // add gui objects to grid
        ...
        //Create the chart
        final LineChart<Number, Number> lineChart = new LineChart<>(xAxis, yAxis);
        ...
        // Create the series and display the lineChart
        lineChart.getData().add(series);
        stage.setScene(scene);

        Scene scene = new Scene(grid, 427, 319);
        //How do we add 'lineChart' to scene as well as keeping 'grid'?
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
公共类FormLineChart扩展了应用程序{
@凌驾
公众假期开始(阶段){
阶段。片名(“片名”);
//创建用于定义GUI的网格
GridPane grid=新建GridPane();
//将gui对象添加到网格
...
//创建图表
最终线形图线形图=新线形图(xAxis,yAxis);
...
//创建系列并显示折线图
lineChart.getData().add(系列);
舞台场景;
场景=新场景(网格,427319);
//我们如何向场景中添加“线条图”以及保持“网格”?
舞台场景;
stage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}

具体来说,是否可以在一个场景中组合“网格”和“线条图”?目前只显示GUI,因为on被迫将场景设置为网格。

正如@James\u D所说,您只需要另一个容器即可实现这一点。一个
窗格
可以包含GUI控件以及另一个
窗格

在下面的示例中,我将一个
网格窗格
放在一个
边框窗格
内,该窗格将窗口分为左右两部分

@Override
public void start(Stage stage) {
    stage.setTitle("A Title");

    // Root element
    BorderPane root = new BorderPane();

    // GridPane
    GridPane grid = new GridPane();
    grid.setPadding(new Insets(10,10,10,10));
    grid.setVgap(10);
    grid.add(new Button("Button 1"), 0, 0);
    grid.add(new Button("Button 2"), 0, 1);
    grid.add(new Button("Button 3"), 0, 2);

    // Chart
    final NumberAxis xAxis = new NumberAxis();
    final NumberAxis yAxis = new NumberAxis();
    final LineChart<Number, Number> lineChart = new LineChart<>(xAxis, yAxis);
    XYChart.Series series = new XYChart.Series();
    series.setName("Chart");
    series.getData().add(new XYChart.Data(1, 5));
    series.getData().add(new XYChart.Data(2, 10));
    lineChart.getData().add(series);

    root.setLeft(grid);
    root.setRight(lineChart);

    Scene scene = new Scene(root, 600, 300);

    stage.setScene(scene);
    stage.show();
}
@覆盖
公众假期开始(阶段){
阶段。片名(“片名”);
//根元素
BorderPane根=新的BorderPane();
//网格窗格
GridPane grid=新建GridPane();
网格设置填充(新插图(10,10,10,10));
网格设置间隙(10);
添加(新按钮(“按钮1”)、0、0);
添加(新按钮(“按钮2”)、0、1);
添加(新按钮(“按钮3”)、0、2);
//图表
最终数字axis xAxis=新数字axis();
最终数字axis yAxis=新数字axis();
最终线形图线形图=新线形图(xAxis,yAxis);
XYChart.Series系列=新的XYChart.Series();
系列名称(“图表”);
series.getData().add(新的XYChart.Data(1,5));
series.getData().add(新的XYChart.Data(2,10));
lineChart.getData().add(系列);
root.setLeft(网格);
root.setRight(线形图);
场景=新场景(根,600,300);
舞台场景;
stage.show();
}

将折线图和网格放在另一个窗格中(某种类型),并使该窗格成为场景的根窗格。或者,当按下按钮时,只需将折线图添加到网格中的适当位置。实际上,它与
grid.add(折线图,0,1)一样简单。您只需将
折线图直接添加到网格中即可。效果很好。我不清楚如何使用“根”来实现我所需要的,现在已经很清楚了。