题
我知道下面的图书馆绘制图表在他/蚀RPC应用程序:
- 日食BIRT图的引擎 (链接到一篇关于如何使用它)
- JFreeChart
其他图书馆还有用于绘制漂亮的图表,与他?或图表Java一般?毕竟,你总是可以显示器的图像...
解决方案
我没有用BIRT或JGraph,但是,我使用JFreeChart在我体应用程序。我已经找到了最好的方式来使用JFreeChart在他是通过作出复合的一个AWT框架和使用AWT功能JFreeChart.这样做的方法是通过创建一个复合
Composite comp = new Composite(parent, SWT.NONE | SWT.EMBEDDED);
Frame frame = SWT_AWT.new_Frame(comp);
JFreeChart chart = createChart();
ChartPanel chartPanel = new ChartPanel(chart);
frame.add(chartPanel);
有几个问题对于实现跨越不同的平台以及作为他的代码这是非常贫穷(在其防御先生吉尔伯特不知道他很好,它是由AWT).我的两个最大的问题是如AWT事件的泡沫通过他有一些错误的事件和发射并由于包裹的AWT框架JFreeChart基本上成为速度较慢。
@zvikico
想把图进入的网页可能不是一个伟大的路要走。有几个问题首先是如何蚀处理融合的网络浏览器上的不同平台是不一致的。还从我理解的几个图形包裹的网络,他们是服务器方要求设置,也有许多公司,包括地雷使用代理服务器和有时这造成了问题与日食的网络浏览。
其他提示
SWTChart提供了良好的效果进行,分散、酒吧和区域的图表。API是直线前进,并有许多实例表明,在网站上。我去找到它在谷歌上查看我的数据在不到一个小时。
你可能会喜欢的 此 一个太
它有能力情节的实时数据用自己的数据提供商。
一个我已经用 JChart2D 和JFreeChart.我有没有现场绘图应用程序通过夏天和使用JFreeChart。谁的家伙已经开始的项目不得不使用JChart2D但我发现,它没有足够的选择用于调整的图表外观和感觉。
JChart2D应该是非常快,所以如果你需要做现场阴谋看看它,虽然JFreeChart没有任何问题做一个情节了几次。
此外,还有相当一名单的制图图书馆 java2s.com
我也在寻找一个制图库食、能发挥出应用程序,偶然在迦勒的后在这里并肯定可以建议SWTChart现在我自己。这是一个很大的速度比JFreeChart对我来说,加容易扩展。如果我真的有抱怨什么,我说的如果是的话,为什么不试可能是一个比较详细,但这仅仅是说一切都是巨大的。
我建议你可以试试 jzy3d, ,一个简单的java库,用于绘制3d数据。它的爪哇,上AWT,摇摆或他.
后evaluationg几个选项我决定用一个JavaScript库显示图在我蚀插件。作为zvikico已经建议了它能够显示一个html页面浏览器。在html网页你可以利用的一个JavaScript库做实际的绘图。如果您使用的宪章可以节省图像作为SVG文件从上下文的菜单。
一些JavaScript图表的图书馆:
D3js: http://d3js.org
进一步JavaScript图的框架: https://en.wikipedia.org/wiki/Comparison_of_JavaScript_charting_frameworks
宪章的例子的图像:
例java码:
package org.treez.results.chartist;
import java.net.URL;
import javafx.application.Application;
import javafx.concurrent.Worker;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Scene;
import javafx.scene.layout.Region;
import javafx.scene.paint.Color;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import netscape.javascript.JSObject;
public class WebViewSample extends Application {
private Scene scene;
@Override
public void start(Stage stage) {
// create the scene
stage.setTitle("Web View");
Browser browser = new Browser();
scene = new Scene(browser, 750, 500, Color.web("#666970"));
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
class Browser extends Region {
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
public Browser() {
//add the web view to the scene
getChildren().add(browser);
//add finished listener
webEngine.getLoadWorker().stateProperty().addListener((obs, oldState, newState) -> {
if (newState == Worker.State.SUCCEEDED) {
executeJavaScript();
}
});
// load the web page
URL url = WebViewSample.class.getResource("chartist.html");
String urlPath = url.toExternalForm();
webEngine.load(urlPath);
}
private void executeJavaScript() {
String script = "var chartist = new Chartist.Line(" + "'#chart'," + " " + "{"
+ " labels: [1, 2, 3, 4, 5, 6, 7, 8]," + "series: [" + " [5, 9, 7, 8, 5, 3, 5, 44]" + "]" + "}, " + ""
+ "{" + " low: 0," + " showArea: true" + "}" + "" + ");" + " var get = function(){return chartist};";
webEngine.executeScript(script);
Object resultJs = webEngine.executeScript("get()");
//get line
JSObject line = (JSObject) resultJs;
String getKeys = "{var keys = [];for (var key in this) {keys.push(key);} keys;}";
JSObject linekeys = (JSObject) line.eval(getKeys);
JSObject options = (JSObject) line.eval("this.options");
JSObject optionkeys = (JSObject) options.eval(getKeys);
options.eval("this.showLine=false");
}
@Override
protected void layoutChildren() {
double w = getWidth();
double h = getHeight();
layoutInArea(browser, 0, 0, w, h, 0, HPos.CENTER, VPos.CENTER);
}
@Override
protected double computePrefWidth(double height) {
return 750;
}
@Override
protected double computePrefHeight(double width) {
return 500;
}
}
例html网页:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="chartist.min.css">
</head>
<body>
<div class="ct-chart" id="chart"></div>
<script type="text/javascript" src="chartist.js"></script>
</body>
</html>
为了得到这工作chartist.js 和宪章.分。css需要下载和放在同一位置,因为html文件。你也可以包括他们从网络。在这里看到的另一个例子:https://www.snip2code.com/Snippet/233633/Chartist-js-example
编辑
我创建了一个java包装D3.js见
还有JGraph,但我不知道,如果只用图表(即节点和边缘),或者如果它不会图表。
这里的东西不同的:这是非常嵌入网页体意见。最近,我尝试过了,它工作得很好。你可以看到这是怎么回事:有很多美丽的图表分为HTML,它可能是一个选项。只是确保成分是客户端的唯(除非你想要开始一个服务器)。
我没有测试过闪光灯,但是我敢肯定你可以得到它的工作(当然,这意味着你的软件将需要闪光灯插在安装)。
JCharts 是另一种选择。它是类似于JFreeChart但该文件是免费的。它没有直接支持他,但你可以始终产生一个图像和它嵌入一个体框架。