当前位置: 首页 > 知识库问答 >
问题:

JFreeChart和swt中的打印

吉凯捷
2023-03-14

我使用的JFreeChart内的ChartPanelSWT_AWT桥接。我想做的是使用SWT来处理图表的打印。有没有办法从SWT将图表面板绘制到打印机GC上?

JFreeChart chart = createXYChart(createDataset(v2, v1));

Composite comp = new Composite(parent, SWT.NONE | SWT.EMBEDDED);
chart.removeLegend();

//ChartComposite c = new ChartComposite(parent, SWT.NONE | SWT.EMBEDDED, chart, true);
Frame frame = SWT_AWT.new_Frame(comp);
ChartPanel panel = new ChartPanel(chart);
panel.setMaximumDrawHeight(10000);
panel.setMinimumDrawHeight(0);
panel.setMaximumDrawWidth(10000);
panel.setMinimumDrawWidth(0);
panel.setPopupMenu(null);

frame.add(panel);


Shell shell  = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
PrintDialog dialog = new PrintDialog(shell);

try {
    //PrinterData printerData = Printer.getDefaultPrinterData();
    PrinterData printerData = dialog.open();
    if (printerData != null) {
        Printer printer = new Printer(printerData);
        if (printer.startJob("Text")) {
            GC gc = new GC(printer);

            if (printer.startPage()) {
                gc.drawString("HDSDFSDFSDFSDFDS", 0, 0);
                //WANT TO PRINT CHART SOMEHOW HERE
                printer.endPage();
            }
            gc.dispose();
            printer.endJob();
        }
        printer.dispose();
        System.out.println("Print job done.");
    }
} catch (Exception exception) {
    exception.printStackTrace();
}

共有1个答案

易书
2023-03-14

我从未使用过SWT\u AWT,但我使用JFreeChart和SWT(使用ChartComposite),我可以用下面的代码将图表捕获到图像中。它可能会帮助您:

ChartComposite chartComposite = ...;
Image image = new Image(chartComposite.getDisplay(), chartComposite.getBounds());
GC gc = new GC(image);
chartComposite.print(gc);
gc.dispose();
 类似资料:
  • 主要内容:JFreeChart JFreeChart类介绍,JFreeChart JFreeChart类的构造方法,JFreeChart JFreeChart类的方法JFreeChart JFreeChart类介绍 这个类包括 JFreeChart 库中最重要的类之一,称为“JFreeChart”。 JFreeChart 类提供 Java 2D 图表的表示。类中的方法使开发人员能够控制生成的图表的各个方面,并创建表示图表的抽象窗口工具包 (AWT) BufferedImage。 可以直接使用 J

  • 问题内容: 在我的Arch Linux,带有Google Window Builder / SWT应用程序的Eclipse上, 我相信我需要安装XULrunner或其他东西。但是当我在Arch中安装时,我得到了。所以我尝试安装。然后,我添加到并且不确定使用哪个。但是当我跑步时,我仍然遇到相同的错误。似乎仍未使用webkit。我怎样才能解决这个问题? 更新2 到目前为止,我尝试安装。然后添加到中,我

  • SWT

    SWT-"Standard Widget Toolkit",它是一个Java平台下开放源码的Native GUI组件库,也是Eclipse平台的UI组件之一。从功能上来说,SWT与AWT/SWING是基本等价的。SWT以方便有效的方式提供了便携式的 (即Write Once,Run Away)带有本地操作系统观感的UI组件: 由于widget系统的固有复杂性以及平台之间微妙的差异,即使在理想情况下

  • 在JFreeChart中可以为饼图提供复杂、美丽的颜色吗?我的意思是如何实现像链接中显示的图像那样的颜色? 是否可以使用RGB格式,还是需要使用不同的格式?我们怎么做。谢谢你的帮助

  • JFreeChart 是一个免费的 100% 的 Java 图表库,它使开发者可以很容易地在他们的应用程序中显示专业质量的图表。JFreeChart的广泛的功能集包括。 一个一致的、记录良好的API,支持广泛的图表类型。 设计灵活,易于扩展,同时针对服务器端和客户端的应用。 支持多种输出类型,包括Swing和JavaFX组件、图像文件(包括PNG和JPEG)和矢量图形文件格式(包括PDF、EPS和

  • 问题内容: 我知道以下用于在SWT / Eclipse RCP应用程序中绘制图表的库: Eclipse BIRT Chart Engine(有关如何使用它的文章的链接) JFreeChart 还有哪些其他库可以用SWT绘制漂亮的图表?还是Java中的图表?毕竟,您始终可以显示图像… 问题答案: 我没有使用BIRT或JGraph,但是我在SWT应用程序中使用了JFreeChart。我发现在SWT中使