I am using JFreechart API to produce "Barchart". I am able to save them, but how to print them from the printer from Java GUI application?
質問する
125 次
1 に答える
2
コードで次のスニペットを使用します。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);
}
}
MainGUI で:
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);
}
}
于 2013-07-10T08:17:04.683 に答える