【问题标题】:Java graph from a printer来自打印机的 Java 图形
【发布时间】:2013-07-10 08:10:22
【问题描述】:

我正在使用 JFreechart API 来生成“条形图”。我可以保存它们,但是如何通过 Java GUI 应用程序从打印机打印它们?

【问题讨论】:

    标签: java jfreechart bar-chart


    【解决方案1】:

    我在我的代码中使用了以下 sn-p。 IStatisticsGraph 是我自己创建统计的界面,所以这对你来说并不重要。在我的主 GUI 中有一个打印按钮,它调用了这个函数。

    public class StatisticPage
        implements Printable
    {
        private ChartPanel mChart = null;
    
        public StatisticPage(ChartPanel oChart)
        {
            mChart = oChart; 
        }
    
        public int print(Graphics g, PageFormat format, int pageIndex)
        {
            if(mChart == null)
                return Printable.NO_SUCH_PAGE;
    
            return mChart.print(g, format, pageIndex);
        }
    }
    

    在主界面中:

    private void onPrint()
    {
        try
        {
            Object o = mStatisticSelectorBox.getSelectedItem();
            if(o == null)
                return;
    
            IStatisticGraph gr = (IStatisticGraph)o;
            StatisticPage page = gr.getPage();
            if(page == null)
                return;
    
            PrinterJob prt = PrinterJob.getPrinterJob();
    
            PageFormat pf0 = prt.defaultPage();
            PageFormat pf1;
            pf0.setOrientation(PageFormat.LANDSCAPE);
            pf1 = prt.pageDialog(pf0);
            if(pf1.equals(pf0) == true)
                return;
    
            Book book = new Book();
            book.append(page, pf1);
            prt.setPageable(book);
    
            try
            {
                prt.print();
            }
            catch (PrinterException exception)
            {
            }
        }
        catch(Throwable e)
        {
            showError(e.getClass().getCanonicalName(), e.getLocalizedMessage(), e);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      相关资源
      最近更新 更多