PrintChart_JDK12.java
上传用户:mingda
上传日期:2017-06-20
资源大小:27691k
文件大小:2k
源码类别:

OA系统

开发平台:

Java

  1. package cn.com.fcsoft.chart.examples;
  2. import cn.com.fcsoft.chart.*;
  3. import java.awt.*;
  4. import java.awt.print.*;
  5. /**
  6.  * This example prints a bar chart.
  7.  * @author meiqi.
  8.  */
  9. public class PrintChart_JDK12 implements Printable, Pageable {
  10. private LineChart chart;
  11. private PrinterJob printJob;
  12. public PrintChart_JDK12() {
  13. // create the chart
  14. printJob = PrinterJob.getPrinterJob();
  15. double[] values = new double[20];
  16. for (int i = 0; i < values.length; i++) {
  17. values[i] = Math.round(Math.random()*100);
  18. }
  19. chart = new LineChart();
  20. chart.setSampleCount(values.length);
  21. chart.setSampleValues(0, values);
  22. chart.setValueLinesOn(true);
  23. chart.setTitle("this chart will be printed");
  24. chart.setTitleOn(true);
  25. chart.setValueLabelsOn(true);
  26. // display the chart
  27. Frame f = new Frame();
  28. f.add("Center", chart);
  29. f.setSize(400,300);
  30. f.show();
  31. }
  32. public void printChart() {
  33. // try to print the chart
  34. printJob.setPrintable(this);
  35. printJob.setPageable(this);
  36. if (printJob.printDialog()) {
  37. try {
  38. printJob.print();
  39. } catch (Exception e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. }
  44. // Pageable interface
  45. public int getNumberOfPages() {
  46. return 1;
  47. }
  48. // Pageable interface
  49. public PageFormat getPageFormat(int index) {
  50. return printJob.defaultPage();
  51. }
  52. // Pageable interface
  53. public Printable getPrintable(int index) {
  54. return this;
  55. }
  56. // Printable interface
  57. public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
  58. double image_x = pageFormat.getImageableX();
  59. double image_y = pageFormat.getImageableY();
  60. g.translate((int)image_x, (int)image_y);
  61. chart.print(g);
  62. return PAGE_EXISTS;
  63. }
  64. public static void main(String[] argv) {
  65. PrintChart_JDK12 p = new PrintChart_JDK12();
  66. p.printChart();
  67. }
  68. }