📄 previewdialog.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 + -