编辑类和方法,以便从另一个方法

时间:2017-05-31 15:41:25

标签: java class methods java-8 return-type

我的Java有点生疏,所以我有一个非常基本的问题。

我有一个班级Dashboard,最终会创建JFXPanel chartFxPanel,我希望chartFxPanel使用chartFxPanel.setScene(scene)显示特定的场景。

我有另一个类BarChart,它最终会从SQL数据生成一个条形图。

出于学习原因,我从oracle教程中获得了这个BarChart源代码,它生成了一个场景,但遗憾的是,它还有一个主要的方法,这是我现在所需要的。

更新代码实施Sabirs答案

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.BarChart;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.stage.Stage;

public class BarChartSample extends Application {
    final static String austria = "Austria";
    final static String brazil = "Brazil";
    final static String france = "France";
    final static String italy = "Italy";
    final static String usa = "USA";

@Override public void start(Stage stage) {
    stage.setTitle("Bar Chart Sample");
    final CategoryAxis xAxis = new CategoryAxis();
    final NumberAxis yAxis = new NumberAxis();
    final BarChart<String,Number> bc = 
    new BarChart<String,Number>(xAxis,yAxis);
    bc.setTitle("Country Summary");
    xAxis.setLabel("Country");       
    yAxis.setLabel("Value");

    XYChart.Series series1 = new XYChart.Series();
    series1.setName("2003");       
    series1.getData().add(new XYChart.Data(austria, 25601.34));
    series1.getData().add(new XYChart.Data(brazil, 20148.82));
    series1.getData().add(new XYChart.Data(france, 10000));
    series1.getData().add(new XYChart.Data(italy, 35407.15));
    series1.getData().add(new XYChart.Data(usa, 12000));      

    XYChart.Series series2 = new XYChart.Series();
    series2.setName("2004");
    series2.getData().add(new XYChart.Data(austria, 57401.85));
    series2.getData().add(new XYChart.Data(brazil, 41941.19));
    series2.getData().add(new XYChart.Data(france, 45263.37));
    series2.getData().add(new XYChart.Data(italy, 117320.16));
    series2.getData().add(new XYChart.Data(usa, 14845.27));  

    XYChart.Series series3 = new XYChart.Series();
    series3.setName("2005");
    series3.getData().add(new XYChart.Data(austria, 45000.65));
    series3.getData().add(new XYChart.Data(brazil, 44835.76));
    series3.getData().add(new XYChart.Data(france, 18722.18));
    series3.getData().add(new XYChart.Data(italy, 17557.31));
    series3.getData().add(new XYChart.Data(usa, 92633.68));  

    Scene scene  = new Scene(bc,800,600);
    bc.getData().addAll(series1, series2, series3);
    setScene(scene);
    stage.setScene(scene);

    stage.show();
}

public void setScene(Scene scene) {
    this.scene = scene;
}

public static Scene getScene() {
    return scene;
}

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

我想如何访问scene中的Dashboard - 类:

    private void initFX(JFXPanel chartFxPanel) {
    Scene scene = BarChartSample.getScene();
    chartFxPanel.setScene(scene);
}

所以我现在需要的是一种方法/解释如何将这个类变成一个返回scene的类,我可以从我的Dashboard类中调用它。

感谢您的帮助,

B'/ P>

1 个答案:

答案 0 :(得分:1)

我还没有完全理解你的问题,所以下面的答案可能会根据我的理解解决你的问题。如果我误解了你的问题,请告诉我,因为我不太清楚要问什么来进一步解释你的问题。

您可以创建一个类实例变量并使用getter&amp;类中的setter方法 - BarChartSample。您可以保留main()方法,因为这是无害的。

所以,

public class BarChartSample extends Application {
 .....
 .....
 //Add this 
 private Scene scene;

@Override 
public void start(Stage stage) {
.....
.....

Scene scene  = new Scene(bc,800,600);
bc.getData().addAll(series1, series2, series3);
stage.setScene(scene);
//Add this line 
setScene(scene);
stage.show();

}
//Add these two methods 

public void setScene(Scene scene){
 this.scene = scene;
}



 public Scene getScene(){
    return scene;
   }
  }

现在,无论哪个班级想要访问此scene,都可以通过getScene()方法访问。