Можно ли показать график класса на другом JFrame? - PullRequest
1 голос
/ 08 ноября 2019

Я создаю программу, которая решает функции и строит их графики. На данный момент у меня есть только два класса: стандартный класс Java (Graph), в котором у меня есть код, используемый для построения графика, и JFrame (Main), используемый пользователем для вставки переменных.

Я хочу показать на одной из панелей фрейма график, который был закодирован в другом классе. Возможно ли это?

Я пытался добавить класс Graph на JFrame таким образом, но он не работает:

Public class Main extends javax.swing.JFrame, Graph { 

Я также пытался запуститьграфик с помощью этого кода: График. Основной (new String[0]), и он работает, но когда я закрываю его и пытаюсь открыть снова, он не отвечает.


public class Graph extends Application {

    @Override public void start(Stage stage) {
        stage.setTitle("Title");
        //defining the axes
        final NumberAxis xAxis = new NumberAxis();
        final NumberAxis yAxis = new NumberAxis();
        xAxis.setLabel("00");
        //creating the chart
        final LineChart<Number,Number> lineChart = 
                new LineChart<Number,Number>(xAxis,yAxis);

        lineChart.setTitle("Graph for the chosen function");
        //defining a series
        XYChart.Series series = new XYChart.Series();
        series.setName("Points");
        //populating the series with data
        series.getData().add(new XYChart.Data(1, 23));
        series.getData().add(new XYChart.Data(2, 14));
        series.getData().add(new XYChart.Data(3, 15));
        series.getData().add(new XYChart.Data(4, 24));
        series.getData().add(new XYChart.Data(5, 34));
        series.getData().add(new XYChart.Data(6, 36));
        series.getData().add(new XYChart.Data(7, 22));
        series.getData().add(new XYChart.Data(8, 45));
        series.getData().add(new XYChart.Data(9, 43));
        series.getData().add(new XYChart.Data(10, 17));
        series.getData().add(new XYChart.Data(11, 29));
        series.getData().add(new XYChart.Data(12, 25));

        Scene scene  = new Scene(lineChart, 700,500);
        lineChart.getData().add(series);

        //stage.setMaximized(true);

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

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