/* * $Id: PrintPreviewDemo.java,v 1.4 2004/03/31 14:52:01 zfq Exp zfq $ * * Copyright (C) 2001-2003 Extreme Component, Inc. All rights reserved. * Use is subject to license terms. */ import java.awt.*; import java.awt.event.*; import javax.swing.border.*; import java.awt.print.*; import java.net.URL; import java.util.*; import java.text.*; import javax.swing.*; import javax.swing.event.*; import com.zfqjava.swing.JPrintPreview; import com.zfqjava.swing.PrintFactory; /** * JPrintPreview Demo * * @author $Author: zfq $ * @version $Revision: 1.4 $ $Date: 2004/03/31 14:52:01 $ */ public class PrintPreviewDemo extends JPanel { private JPrintPreview printPreview; public PrintPreviewDemo() { printPreview = new JPrintPreview(); printPreview.setPrintData(createPrintable()); setLayout(new BorderLayout()); add(printPreview, BorderLayout.CENTER); JPanel panel = new JPanel(new BorderLayout()); panel.add(createPropertyPanel(), BorderLayout.NORTH); panel.add(createControlPanel(), BorderLayout.CENTER); add(panel, BorderLayout.EAST); } private Printable createPrintable() { Image img = loadImage("resources/install-side.gif"); Map map = new HashMap(); map.put(PrintFactory.HEADER_FORMAT, new MessageFormat("A Test Image")); map.put(PrintFactory.FOOTER_FORMAT, new MessageFormat("Page {0}")); map.put(PrintFactory.FOOTER_ALIGNMENT, new Integer(SwingConstants.RIGHT)); return PrintFactory.createPrintable(img, map); } private Image loadImage(String name) { URL url = getResource(name); if(url != null) { ImageIcon imageIcon = new ImageIcon(url); return imageIcon.getImage(); } else { return null; } } private URL getResource(String name) { URL url = getClass().getResource(name); return url; } private JPrintPreview createPrintPreview() { JPrintPreview printPreview = new JPrintPreview(); printPreview.setPrintData(this.printPreview.getPrintData()); printPreview.putClientProperty("JPrintPreview.pageViewMode", this.printPreview.getClientProperty("JPrintPreview.pageViewMode")); return printPreview; } private JPanel createPropertyPanel() { JPanel panel = new JPanel(); Border titledBorder = BorderFactory.createTitledBorder("Change Property"); Border emptyBorder = BorderFactory.createEmptyBorder(12, 12, 12, 12); panel.setBorder(BorderFactory.createCompoundBorder(titledBorder, emptyBorder)); GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); panel.setLayout(gridbag); c.weightx = 0.5; c.weighty = 0.5; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.WEST; c.insets = new Insets(0, 0, 5, 0); JLabel label = new JLabel("Page Mode:"); addPanel(panel, c, label); final JComboBox cb = new JComboBox(new Object[] { "SinglePage", "ContinuousPage" }); cb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { printPreview.putClientProperty("JPrintPreview.pageViewMode", cb.getSelectedItem()); } }); label.setLabelFor(cb); c.gridwidth = GridBagConstraints.REMAINDER; addPanel(panel, c, cb); return panel; } private JPanel createControlPanel() { JPanel panel = new JPanel(); JButton b = new JButton("Show Dialog"); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JPrintPreview printPreview = createPrintPreview(); printPreview.showDialog(null); } }); panel.add(b); b = new JButton("Show Frame"); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JPrintPreview printPreview = createPrintPreview(); printPreview.showFrame("test"); } }); panel.add(b); return panel; } private static void addPanel(Container container, GridBagConstraints c, Component component) { GridBagLayout gridbag = (GridBagLayout)container.getLayout(); gridbag.setConstraints(component, c); container.add(component); } public static void main(String[] args) { JFrame f = new JFrame("JPrintPreview Demo"); DemoPanel demoPanel = new DemoPanel(); demoPanel.addDemo(new PrintPreviewDemo()); f.getContentPane().add(demoPanel); f.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); f.pack(); centerOnScreen(f); f.show(); } public static void centerOnScreen(Window window) { Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); window.setLocation((d.width - window.getWidth())/2, (d.height - window.getHeight())/2); } }