我正在完成学校的最后一项编程任务,想在我的java应用程序中添加一个小功能糖果,在JavaFX中以动态饼图的形式。
使用NetBeans7.2rc2,我从模板中创建了一个Swing/JavaFX混合应用程序。我扩展了JPanelClass来创建一个shell,我的主要应用程序可以用它来访问FX特性。然而,我面临的问题是,虽然图表的初始化进行得很顺利,但当我试图更新broked的东西时,它会生成一个空指针异常。我相信下面是相关的代码:
实例化:
public class PieChartJFxPanel extends JApplet {
private static final int JFXPANEL_WIDTH_INT = 500;
private static final int JFXPANEL_HEIGHT_INT = 500;
StackPane root = new StackPane();
PieChart athleteChart;
ObservableList<PieChart.Data> pieChartData =FXCollections.observableArrayList();
private static JFXPanel fxContainer;
private int fAthletes=0;
private int rAthletes=0;
public PieChartJFxPanel(int totalAthletes,int finishedAthletes){
super();
fAthletes=finishedAthletes;
rAthletes=totalAthletes-fAthletes;
}
@Override
public void init() {
fxContainer = new JFXPanel();
fxContainer.setPreferredSize(new Dimension(JFXPANEL_WIDTH_INT, JFXPANEL_HEIGHT_INT));
add(fxContainer, BorderLayout.CENTER);
// create JavaFX scene
Platform.runLater(new Runnable() {
@Override
public void run() {
createScene();
}
});
}
private void createScene() {
pieChartData.add(new PieChart.Data("Finished",fAthletes));
pieChartData.add(new PieChart.Data("Outstanding",rAthletes));
athleteChart=new PieChart();
athleteChart.setLegendVisible(false);
athleteChart.setTitle("Race Status");
//athleteChart.setAnimated(true);
athleteChart.setData(pieChartData);
root.getChildren().add(athleteChart);
fxContainer.setScene(new Scene(root));
//
}
public void setData(int total, int in){
final ObservableList<PieChart.Data> pieChartDat=FXCollections.observableArrayList();
pieChartDat.add(new PieChart.Data("Finished",fAthletes));
pieChartDat.add(new PieChart.Data("Outstanding",rAthletes));
athleteChart.setData(pieChartDat);
}
Exception in thread "main" java.lang.NullPointerException
at piechartjpanel.PieChartJFxPanel.setData(PieChartJFxPanel.java:95)
at piechartjpanel.AthleteIOChart.setAthletes(AthleteIOChart.java:62)
at piechartjpanel.Test.setter(Test.java:34)
at piechartjpanel.Test.main(Test.java:48)
任何帮助都很感激:)提前感谢
您从不初始化AtheleteChart
athleteChart.setData(pieChartDat);
AthleteChart
在调用时为null
,并且始终为null。
嗨,我正在使用chartnewjs。我想用动画更新饼图。我使用的折线图与实时更新。updateChart(ctx, data, config, true, true)方法工作正常。我已经尝试了同样的饼图,但图表没有更新。 然后我像每次刷新一样尝试创建新图表(document.getElementById(“peak_session”).getContext(“2d”)).Pie(数据,选项)它工作
问题内容: 我有一个动态数据源,它经常在浏览器中创建一个新的json。 我能够使用下面的代码从这个json创建饼图(也在这个小提琴中) 此数据经常更新,那么更新饼图的最佳方法是什么?看看这个小提琴。在这里,我还有另一个名为data2的json。 我怎样才能简单地用data2替换数据并使饼动画化/更新? 注意:在某些更新中,值可能== 0 问题答案: 我已经创建了一个有效的版本,并将其发布在这里:h
问题内容: 我有一个从JPanel继承并带有图像的类,我想设置一个小动画来显示面板/图像,然后在事件触发时淡出它。 我大概设置了一个线程并启动了动画,但是我该如何实际执行淡入淡出呢? 问题答案: 你可以自己进行线程化,但是使用Trident库进行处理可能会更容易。如果在你的类(例如)上创建了一个setter ,则可以要求trident在特定时间段内将“不透明度”字段从1.0插入到0.0(这里有一些
我有一个很大的swing应用程序,我想把javafx嵌入其中。我多次尝试这样做(通过遵循oracle教程等),但只有在声明一个新的JFrame以使用JFXPanel组件时才成功。但是,我不想使用新的框架,我想将我的Javafx代码合并到swing应用程序的根JFrame中。 我们可以将javaFX组件嵌入到JPanel而不是JFrame中吗?如果答案是肯定的,为什么我没有成功?
问题内容: 我有一个Swing应用程序,即使我在/中都包含了所有内容,也没有捕获到异常。 我得到的只是这个堆栈跟踪: 问题答案: 正如另一位发布者所提到的,您的问题是该异常正在另一个线程(事件调度线程)中引发。几个解决方案: 在发生异常的实际代码周围进行尝试/捕获:例如,如果它是对ActionListener处理的按钮单击的响应,则将try / catch放入actionPerformed()方法
问题内容: 我在这里重新绘制图形时遇到问题。我允许用户在时间刻度(x轴)中指定单位,然后重新计算并调用此函数plots()。我希望该图仅进行更新,而不是将另一个图附加到该图上。 问题答案: 你基本上有两个选择: 精确执行当前操作,但在重新配置数据之前先致电和。这是最慢但最简单,最可靠的选择。 除了重新绘制外,你还可以更新绘图对象的数据。你需要在代码中进行一些更改,但这比每次重新绘制都快得多。但是,
问题内容: 我浏览了猫鼬API,以及关于SO和google小组的许多问题,但仍然无法弄清更新嵌入式文档。 我正在尝试使用args的内容更新此特定的userListings对象。 以下是架构: 此发现也不起作用,这可能是第一个问题: 返回: 那应该等同于此mongo客户呼叫: 运行: 问题答案: 当您已有用户时,您可以执行以下操作: 如在这里找到:http : //mongoosejs.com/do
问题内容: 我想用字符串键和struct值构建一个映射,通过它我可以更新由map key标识的映射中的struct值。 我已经尝试过了,这并没有给我想要的输出。 我真正想要的是: 问题答案: 您无法更改与地图中的键关联的值,只能重新分配值。 这给您2种可能性: 将指针存储在地图中,因此您可以修改 指向的 对象(不在地图数据结构内部)。 存储结构值,但是在修改它时,需要将其重新分配给键。 1.使用指