gpt4 book ai didi

java - 编辑类和方法,以便可以从另一个方法调用它

转载 作者:行者123 更新时间:2023-12-02 13:01:06 26 4
gpt4 key购买 nike

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

我有一个类Dashboard,它最终创建一个JFXPanel ChartFxPanel,并且我希望chartFxPanel使用chartFxPanel显示特定场景。 setScene(场景).

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

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

更新了实现 Sabirs Answer 的代码

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);
}

我想如何访问仪表板中的场景 -Class:

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

所以我现在需要的是一种方法/解释如何将此类转换为返回场景的类,并且我可以从我的仪表板类中调用它。

感谢您的帮助,

b

最佳答案

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

您可以创建类实例变量并在类中使用 getter 和 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()访问方法。

关于java - 编辑类和方法,以便可以从另一个方法调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com