Измените размер графика, чтобы он поместился во внутреннюю рамку в java - PullRequest
0 голосов
/ 11 апреля 2020

Здравствуйте. В настоящее время я работаю над проектом с некоторыми графиками. У меня есть приложение java swing, в которое мне нужно добавить график. я нарисовал график в javafx и вставил его на панель javafx и поместил его во внутреннюю рамку в java swing. Проблема в том, что мне нужно изменить размер графика и вписаться в размер jInternal frame

The scene i made is this
private static Scene createScene() {
    NumberAxis xAxis = new NumberAxis(1960, 2020, 10); 
  xAxis.setLabel("Years"); 

  //Defining the y axis   
  NumberAxis yAxis = new NumberAxis   (0, 350, 50); 
  yAxis.setLabel("No.of schools"); 

  //Creating the line chart 
  LineChart linechart = new LineChart(xAxis,yAxis);  

  //Prepare XYChart.Series objects by setting data 
  XYChart.Series series = new XYChart.Series(); 
  series.setName("No of schools in an year"); 

  series.getData().add(new XYChart.Data(1970, 15)); 
  series.getData().add(new XYChart.Data(1980, 30)); 
  series.getData().add(new XYChart.Data(1990, 60)); 
  series.getData().add(new XYChart.Data(2000, 120)); 
  series.getData().add(new XYChart.Data(2013, 240)); 
  series.getData().add(new XYChart.Data(2014, 300)); 

  //Setting the data to Line chart    
    linechart.getData().add(series);
    linechart.setScaleShape(true);
    Group  root  =  new  Group(linechart);
    Scene  scene  =  new  Scene(root, 100,100);
    return (scene);
}

который называется insisde

public static void initFX(JFXPanel fxPanel) {
    // This method is invoked on the JavaFX thread
    Scene scene = createScene();
    fxPanel.setScene(scene);
}

Ab c является java внутренним именем фрейма

private  void initAndShowGUI() {
    // This method is invoked on the EDT thread
    //JFrame frame = new JFrame("Swing and JavaFX");
    final JFXPanel fxPanel = new JFXPanel();
    Abc.add(fxPanel);
    fxPanel.setBounds(0,0,500,250);
    Platform.runLater(new Runnable() {
        @Override
        public void run() {
            initFX(fxPanel);
        }
   });
}

я использовал эту функцию для запуска, и она вызывается внутри конструктора моего свинг-программа

public  void ThisIsIT() {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            initAndShowGUI();
        }
    });
}

Я мог бы получить помощь здесь

...