我正在尝试使用外部javascript文件创建一个用于GWT项目的PieChart小部件。 我如何在本机函数GWT中从外部js库获取类实例?
public class PieChart implements IsWidget{
Canvas c;
public PieChart() {
c = Canvas.createIfSupported();
init(c.getElement());
}
private native void init(Element e) /*-{
var data = [];
var ctx = e.getContext("2d");
var myNewChart = new Chart(ctx);
myNewChart.Doughnut(data,{animateScale: true});
}-*/;
private native void add(PieChartData p) /*-{
var data = [{
value: p.value,
color: p.color,
hightlight: p.hightlight,
label: p.label
}];
myNewChart.addData(data); // <-- null
}-*/;
@Override
public Widget asWidget() {
return c;
}
}
我在向图表添加值时遇到问题。 请帮我。谢谢。
我想使用GWT中的Canvas创建一个PieChart类作为一个小部件,并且可以使用该图表。使用PieChart类:
AbsolutePanel panel = new AbsolutePanel();
PieChart p = new PieChart();
panel.add(p);
编译项目 - 显示图表。 我想动态地向图表添加数据。我不知道如何用本机js初始化对象并在其他方法中使用它。 对变量myNewChart的引用显示错误 - NullPointer,因为它没有初始化myNewChart变量。
我会以这种方式添加数据:
AbsolutePanel panel = new AbsolutePanel();
PieChart p = new PieChart();
panel.add(p);
p.add(data);
我不知道怎么做; /
要在GWT中创建一个我可以使用图表的类,使用此页面中的外部js文件:http://www.chartjs.org/docs/
答案 0 :(得分:0)
我猜&#34; //&lt; - null&#34;你有问题在哪里?!
尝试保留对创建的图表对象的引用。
在班级中创建成员
JavaScriptObject myNewChart;
并通过替换
在init方法中初始化它var myNewChart = new Chart(ctx);
与
this.@fully.q.p.n.PieChart::myNewChart = new Chart(ctx);