📄 superdemo.java
字号:
else
if(s.equals("EXIT"))
attemptExit();
}
private void exportToPDF()
{
java.awt.Component component = chartContainer.getComponent(0);
if(component instanceof ChartPanel)
{
JFileChooser jfilechooser = new JFileChooser();
jfilechooser.setName("untitled.pdf");
jfilechooser.setFileFilter(new FileFilter() {
public boolean accept(File file)
{
return file.isDirectory() || file.getName().endsWith(".pdf");
}
public String getDescription()
{
return "Portable Document Format (PDF)";
}
}
);
int i = jfilechooser.showSaveDialog(this);
if(i == 0)
{
ChartPanel chartpanel = (ChartPanel)component;
try
{
JFreeChart jfreechart = (JFreeChart)chartpanel.getChart().clone();
PDFExportTask pdfexporttask = new PDFExportTask(jfreechart, chartpanel.getWidth(), chartpanel.getHeight(), jfilechooser.getSelectedFile());
Thread thread = new Thread(pdfexporttask);
thread.start();
}
catch(CloneNotSupportedException clonenotsupportedexception)
{
clonenotsupportedexception.printStackTrace();
}
}
} else
{
String s = "Unable to export the selected item. There is ";
s = s + "either no chart selected,\nor else the chart is not ";
s = s + "at the expected location in the component hierarchy\n";
s = s + "(future versions of the demo may include code to ";
s = s + "handle these special cases).";
JOptionPane.showMessageDialog(this, s, "PDF Export", 1);
}
}
public static void writeChartAsPDF(OutputStream outputstream, JFreeChart jfreechart, int i, int j, FontMapper fontmapper)
throws IOException
{
Rectangle rectangle = new Rectangle(i, j);
Document document = new Document(rectangle, 50F, 50F, 50F, 50F);
try
{
PdfWriter pdfwriter = PdfWriter.getInstance(document, outputstream);
document.addAuthor("JFreeChart");
document.addSubject("Demonstration");
document.open();
PdfContentByte pdfcontentbyte = pdfwriter.getDirectContent();
PdfTemplate pdftemplate = pdfcontentbyte.createTemplate(i, j);
Graphics2D graphics2d = pdftemplate.createGraphics(i, j, fontmapper);
java.awt.geom.Rectangle2D.Double double1 = new java.awt.geom.Rectangle2D.Double(0.0D, 0.0D, i, j);
jfreechart.draw(graphics2d, double1);
graphics2d.dispose();
pdfcontentbyte.addTemplate(pdftemplate, 0.0F, 0.0F);
}
catch(DocumentException documentexception)
{
System.err.println(documentexception.getMessage());
}
document.close();
}
public static void saveChartAsPDF(File file, JFreeChart jfreechart, int i, int j, FontMapper fontmapper)
throws IOException
{
BufferedOutputStream bufferedoutputstream = new BufferedOutputStream(new FileOutputStream(file));
writeChartAsPDF(bufferedoutputstream, jfreechart, i, j, fontmapper);
bufferedoutputstream.close();
}
private void attemptExit()
{
String s = "Confirm";
String s1 = "Are you sure you want to exit the demo?";
int i = JOptionPane.showConfirmDialog(this, s1, s, 0, 3);
if(i == 0)
{
dispose();
System.exit(0);
}
}
private JPanel createChartDisplayPanel()
{
displayPanel = new JPanel(new BorderLayout());
chartContainer = new JPanel(new BorderLayout());
chartContainer.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4), BorderFactory.createLineBorder(Color.black)));
chartContainer.add(createNoDemoSelectedPanel());
descriptionContainer = new JPanel(new BorderLayout());
descriptionContainer.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
descriptionContainer.setPreferredSize(new Dimension(600, 140));
descriptionPane = new JTextPane();
descriptionPane.setEditable(false);
JScrollPane jscrollpane = new JScrollPane(descriptionPane, 20, 31);
descriptionContainer.add(jscrollpane);
displayDescription("select.html");
JSplitPane jsplitpane = new JSplitPane(0);
jsplitpane.setTopComponent(chartContainer);
jsplitpane.setBottomComponent(descriptionContainer);
displayPanel.add(jsplitpane);
jsplitpane.setDividerLocation(0.75D);
return displayPanel;
}
private TreeModel createTreeModel()
{
DefaultMutableTreeNode defaultmutabletreenode = new DefaultMutableTreeNode("JFreeChart");
defaultmutabletreenode.add(createAreaChartsNode());
defaultmutabletreenode.add(createBarChartsNode());
defaultmutabletreenode.add(createCombinedAxisChartsNode());
defaultmutabletreenode.add(createFinancialChartsNode());
defaultmutabletreenode.add(createGanttChartsNode());
defaultmutabletreenode.add(createLineChartsNode());
defaultmutabletreenode.add(createMeterChartsNode());
defaultmutabletreenode.add(createMultipleAxisChartsNode());
defaultmutabletreenode.add(createOverlaidChartsNode());
defaultmutabletreenode.add(createPieChartsNode());
defaultmutabletreenode.add(createStatisticalChartsNode());
defaultmutabletreenode.add(createTimeSeriesChartsNode());
defaultmutabletreenode.add(createXYChartsNode());
defaultmutabletreenode.add(createMiscellaneousChartsNode());
defaultmutabletreenode.add(createExperimentalNode());
return new DefaultTreeModel(defaultmutabletreenode);
}
private MutableTreeNode createPieChartsNode()
{
DefaultMutableTreeNode defaultmutabletreenode = new DefaultMutableTreeNode("Pie Charts");
DefaultMutableTreeNode defaultmutabletreenode1 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo1", "PieChartDemo1.java"));
DefaultMutableTreeNode defaultmutabletreenode2 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo2", "PieChartDemo2.java"));
DefaultMutableTreeNode defaultmutabletreenode3 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo3", "PieChartDemo3.java"));
DefaultMutableTreeNode defaultmutabletreenode4 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo4", "PieChartDemo4.java"));
DefaultMutableTreeNode defaultmutabletreenode5 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo5", "PieChartDemo5.java"));
DefaultMutableTreeNode defaultmutabletreenode6 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo6", "PieChartDemo6.java"));
DefaultMutableTreeNode defaultmutabletreenode7 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo7", "PieChartDemo7.java"));
DefaultMutableTreeNode defaultmutabletreenode8 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChartDemo8", "PieChartDemo8.java"));
DefaultMutableTreeNode defaultmutabletreenode9 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChart3DDemo1", "PieChart3DDemo1.java"));
DefaultMutableTreeNode defaultmutabletreenode10 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChart3DDemo2", "PieChart3DDemo2.java"));
DefaultMutableTreeNode defaultmutabletreenode11 = new DefaultMutableTreeNode(new DemoDescription("demo.PieChart3DDemo3", "PieChart3DDemo3.java"));
DefaultMutableTreeNode defaultmutabletreenode12 = new DefaultMutableTreeNode(new DemoDescription("demo.MultiplePieChartDemo1", "MultiplePieChartDemo1.java"));
DefaultMutableTreeNode defaultmutabletreenode13 = new DefaultMutableTreeNode(new DemoDescription("demo.RingChartDemo1", "RingChartDemo1.java"));
defaultmutabletreenode.add(defaultmutabletreenode1);
defaultmutabletreenode.add(defaultmutabletreenode2);
defaultmutabletreenode.add(defaultmutabletreenode3);
defaultmutabletreenode.add(defaultmutabletreenode4);
defaultmutabletreenode.add(defaultmutabletreenode5);
defaultmutabletreenode.add(defaultmutabletreenode6);
defaultmutabletreenode.add(defaultmutabletreenode7);
defaultmutabletreenode.add(defaultmutabletreenode8);
defaultmutabletreenode.add(defaultmutabletreenode9);
defaultmutabletreenode.add(defaultmutabletreenode10);
defaultmutabletreenode.add(defaultmutabletreenode11);
defaultmutabletreenode.add(defaultmutabletreenode12);
defaultmutabletreenode.add(defaultmutabletreenode13);
return defaultmutabletreenode;
}
private MutableTreeNode createOverlaidChartsNode()
{
DefaultMutableTreeNode defaultmutabletreenode = new DefaultMutableTreeNode("Overlaid Charts");
DefaultMutableTreeNode defaultmutabletreenode1 = new DefaultMutableTreeNode(new DemoDescription("demo.OverlaidBarChartDemo1", "OverlaidBarChartDemo1.java"));
DefaultMutableTreeNode defaultmutabletreenode2 = new DefaultMutableTreeNode(new DemoDescription("demo.OverlaidBarChartDemo2", "OverlaidBarChartDemo2.java"));
DefaultMutableTreeNode defaultmutabletreenode3 = new DefaultMutableTreeNode(new DemoDescription("demo.OverlaidXYPlotDemo1", "OverlaidXYPlotDemo1.java"));
DefaultMutableTreeNode defaultmutabletreenode4 = new DefaultMutableTreeNode(new DemoDescription("demo.OverlaidXYPlotDemo2", "OverlaidXYPlotDemo2.java"));
defaultmutabletreenode.add(defaultmutabletreenode1);
defaultmutabletreenode.add(defaultmutabletreenode2);
defaultmutabletreenode.add(defaultmutabletreenode3);
defaultmutabletreenode.add(defaultmutabletreenode4);
return defaultmutabletreenode;
}
private MutableTreeNode createBarChartsNode()
{
DefaultMutableTreeNode defaultmutabletreenode = new DefaultMutableTreeNode("Bar Charts");
defaultmutabletreenode.add(createCategoryBarChartsNode());
defaultmutabletreenode.add(createXYBarChartsNode());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -