⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 previewdialog.java

📁 的说法科斯洛伐路上看到伐楼上的开发1科林麦克;
💻 JAVA
字号:
package org.loon.framework.ide.test.dialog;
/**
 * <p>Title: LoonFramework</p>
 * <p>Description:</p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: LoonFramework</p>
 * @author chenpeng  
 * @email:ceponline@yahoo.com.cn 
 * @version 0.1
 */
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.print.PageFormat;
import java.awt.print.PrinterJob;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;



public class PreviewDialog extends JDialog
    implements ActionListener, ItemListener
{

    Container contentPane;
    JPanel panelWest;
    JPanel panelWestNorth;
    JPanel panelWestCenter;
    JPanel panelWestCenterNorth;
    JPanel panelWestCenterSouth;
    JPanel panelWestSouth;
    JPanel panelCenter;
    JPanel panelCenterSouth;
    JLabel labelSheet;
    JButton buttonFormat;
    String strFont[];
    JComboBox comboFont;
    String strSize[] = {
        "8", "9", "10", "11", "12", "13", "14", "16", "18", "20"
    };
    JComboBox comboSize;
    JCheckBox checkDate;
    JButton buttonPrint;
    JButton buttonClose;
    JButton buttonNext;
    JLabel labelPage;
    JButton buttonBefore;
    Preview preview;
    PageFormat pageForm;
    String strData;
    Font font;
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public PreviewDialog(Frame frame, String s, Font font1)
    {
        super(frame, "JavaIDE : 打印提示", true);
        panelWest = new JPanel();
        panelWestNorth = new JPanel();
        panelWestCenter = new JPanel();
        panelWestCenterNorth = new JPanel();
        panelWestCenterSouth = new JPanel();
        panelWestSouth = new JPanel();
        panelCenter = new JPanel();
        panelCenterSouth = new JPanel();
        labelSheet = new JLabel("标准:A4");
        buttonFormat = new JButton("变更");
        comboSize = new JComboBox(strSize);
        checkDate = new JCheckBox("打印", false);
        buttonPrint = new JButton("开始打印");
        buttonClose = new JButton("关闭");
        buttonNext = new JButton("下一页");
        labelPage = new JLabel("/", 0);
        buttonBefore = new JButton("上一页");
        addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent windowevent)
            {
                setVisible(false);
            }

        });
        PrinterJob printerjob = PrinterJob.getPrinterJob();
        pageForm = printerjob.defaultPage();
        strData = s;
        font = font1;
        preview = new Preview(s, font1, pageForm);
        contentPane = getContentPane();
        contentPane.setLayout(new BorderLayout(10, 0));
        contentPane.add("West", panelWest);
        contentPane.add("Center", panelCenter);
        panelWest.setLayout(new BorderLayout(0, 30));
        panelWest.add("North", panelWestNorth);
        panelWest.add("Center", panelWestCenter);
        panelWest.add("South", panelWestSouth);
        panelCenter.setLayout(new BorderLayout(0, 10));
        panelCenter.add("Center", preview);
        panelCenter.add("South", panelCenterSouth);
        buttonFormat.addActionListener(this);
        panelWestNorth.setLayout(new BorderLayout());
        panelWestNorth.add("West", labelSheet);
        panelWestNorth.add("East", buttonFormat);
        strFont = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
        comboFont = new JComboBox(strFont);
        comboFont.setSelectedItem(font1.getFontName());
        comboSize.setSelectedItem(Integer.toString(font1.getSize()));
        comboFont.addItemListener(this);
        comboSize.addItemListener(this);
        panelWestCenter.setLayout(new BorderLayout());
        panelWestCenter.add("North", panelWestCenterNorth);
        panelWestCenter.add("Center", panelWestCenterSouth);
        panelWestCenterNorth.setLayout(new BorderLayout());
        panelWestCenterNorth.add("West", new JLabel("字体", 4));
        panelWestCenterNorth.add("Center", comboFont);
        panelWestCenterSouth.setLayout(new BorderLayout());
        JPanel jpanel = new JPanel();
        panelWestCenterSouth.add("North", jpanel);
        jpanel.setLayout(new BorderLayout());
        jpanel.add("West", new JLabel("大小", 4));
        jpanel.add("Center", comboSize);
        buttonPrint.addActionListener(this);
        buttonClose.addActionListener(this);
        panelWestSouth.setLayout(new FlowLayout());
        panelWestSouth.add(buttonPrint);
        panelWestSouth.add(buttonClose);
        buttonNext.addActionListener(this);
        buttonBefore.addActionListener(this);
        buttonBefore.setEnabled(false);
        panelCenterSouth.setLayout(new BorderLayout(20, 0));
        panelCenterSouth.add("West", buttonBefore);
        panelCenterSouth.add("Center", labelPage);
        panelCenterSouth.add("East", buttonNext);
        labelSheet.setText("打印用纸:" + preview.getSheetFormat());
        setButtonEnabled();
        labelPage.setText(preview.getPageInfo());
        pack();
        preview.printImage();
        setLocationRelativeTo(frame);
        setResizable(false);
        setVisible(true);
    }

    public void actionPerformed(ActionEvent actionevent)
    {
        Object obj = actionevent.getSource();
        int i = 0;
        if(obj == buttonNext)
            i = preview.paging(1);
        if(obj == buttonBefore)
            i = preview.paging(2);
        if(obj == buttonNext || obj == buttonBefore)
        {
            labelPage.setText(preview.getPageInfo());
            if((i & 1) == 0)
                buttonNext.setEnabled(true);
            else
                buttonNext.setEnabled(false);
            if((i & 2) == 0)
                buttonBefore.setEnabled(true);
            else
                buttonBefore.setEnabled(false);
        }
        if(obj == buttonClose)
            setVisible(false);
        if(obj == buttonPrint)
        {
            new PrintStart(strData, font, pageForm);
            setVisible(false);
        }
        if(obj == buttonFormat)
        {
            PageFormat pageformat = pageForm;
            openDriver();
            if(!pageformat.equals(pageForm))
            {
                panelCenter.remove(preview);
                preview = new Preview(strData, font, pageForm);
                panelCenter.add("Center", preview);
                pack();
                preview.printImage();
                labelSheet.setText("打印用纸:" + preview.getSheetFormat());
                setButtonEnabled();
                labelPage.setText(preview.getPageInfo());
            }
        }
    }

    public void itemStateChanged(ItemEvent itemevent)
    {
        try
        {
            font = new Font((String)comboFont.getSelectedItem(), 0, Integer.parseInt((String)comboSize.getSelectedItem()));
            panelCenter.remove(preview);
            preview = new Preview(strData, font, pageForm);
            panelCenter.add("Center", preview);
            pack();
            preview.printImage();
            setButtonEnabled();
            labelPage.setText(preview.getPageInfo());
        }
        catch(Exception exception) { }
    }

    public void setButtonEnabled()
    {
        int i = preview.getMaxPage();
        if(i == 1)
        {
            buttonNext.setEnabled(false);
            buttonBefore.setEnabled(false);
        } else
        {
            buttonNext.setEnabled(true);
            buttonBefore.setEnabled(false);
        }
    }

    public void openDriver()
    {
        PrinterJob printerjob = PrinterJob.getPrinterJob();
        pageForm = printerjob.pageDialog(pageForm);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -