📄 jpanelprint.java
字号:
package printtable;
import java.awt.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import javax.swing.table.*;
import com.borland.jbcl.layout.*;
import java.util.*;
import java.awt.font.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.print.*;
import javax.print.ServiceUI;
import javax.print.attribute.*;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFFooter;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import java.io.*;
import org.apache.poi.hssf.util.Region;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class JPanelPrint
extends JPanel
implements ActionListener, Printable
{
BorderLayout borderLayout1 = new BorderLayout();
DefaultTableModel mTable = new DefaultTableModel();
JTable jTable1 = new JTable(mTable);
private String[] jTableColumnNamesArchType = {
"缂栧彿", "鍚嶇О"};
JPanel jPanel1 = new JPanel();
XYLayout xYLayout1 = new XYLayout();
JScrollPane jScrollPane1 = new JScrollPane();
JPanel jPanel3 = new JPanel();
BorderLayout borderLayout2 = new BorderLayout();
XYLayout xYLayout4 = new XYLayout();
JButton jButtonPrint = new JButton();
JButton jButtonView = new JButton();
BorderLayout borderLayout3 = new BorderLayout();
private JTextField text;
private PageFormat pageFormat;
private PrintRequestAttributeSet attributes;
private static final int WIDTH = 300;
private static final int HEIGHT = 100;
private double scale;
public JPanelPrint()
{
try {
jbInit();
setTable();
} catch (Exception ex) {
ex.printStackTrace();
}
}
void jbInit() throws Exception
{
this.setSize(new Dimension(500, 425));
this.setLayout(borderLayout2);
mTable.setColumnIdentifiers(jTableColumnNamesArchType);
jPanel1.setLayout(borderLayout3);
jPanel3.setLayout(xYLayout4);
jButtonPrint.setText("print");
jButtonPrint.addActionListener(new
JPanelPrint_jButtonPrint_actionAdapter(this));
jButtonView.setText("View");
jButtonView.addActionListener(new JPanelPrint_jButtonView_actionAdapter(this));
jPanel1.add(jScrollPane1, BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTable1, null);
jPanel3.add(jButtonPrint, new XYConstraints(21, 19, 75, 30));
jPanel3.add(jButtonView, new XYConstraints(132, 19, 75, 26));
jPanel3.add(jPanel1, new XYConstraints(1, 54, 419, 335));
this.add(jPanel3, BorderLayout.CENTER);
}
private void setTable()
{
Object[] tabdata = new Object[2];
mTable.setRowCount(0);
for (int i = 0; i < 100; i++) {
tabdata[0] = "test" + i;
tabdata[1] = "no=" + i;
mTable.addRow(tabdata);
}
mTable.setRowCount(100);
}
public void actionPerformed(ActionEvent e)
{
System.out.println("action");
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
try {
printJob.print();
} catch (Exception PrintException) {}
}
public int print(Graphics g, PageFormat pf, int pi) throws PrinterException
{
if (pi >= 1) {
return Printable.NO_SUCH_PAGE;
}
g.translate(100, 100);
Font f = new Font("Monospaced", Font.PLAIN, 12);
System.out.println(f);
g.setFont(f);
paint(g);
return Printable.PAGE_EXISTS;
}
boolean generatXLSFileForJTable(String sInFileName,
DefaultTableModel mInTable,
String sTital, ArrayList aColumnList) throws
Exception
{
// create a new file
FileOutputStream out = new FileOutputStream(sInFileName);
// create a new workbook
HSSFWorkbook wb = new HSSFWorkbook();
// create a new sheet
HSSFSheet sheet = wb.createSheet("mySheet");
HSSFCellStyle cellStyle = wb.createCellStyle();
HSSFDataFormat dataFormat = wb.createDataFormat();
// create 2 fonts objects
HSSFFont font = wb.createFont();
HSSFHeader heads = sheet.getHeader();
// declare a row object reference
HSSFRow row = sheet.createRow((short)3);
//set font 1 to 12 point type
font.setFontHeightInPoints((short)12);
//make it blue
font.setColor((short)0xc);
// make it bold
//arial is the default font
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//set font 2 to 10 point type
font.setFontHeightInPoints((short)10);
//make it red
font.setColor((short)HSSFFont.COLOR_NORMAL);
//make it bold
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setStrikeout(false);
font.setTypeOffset(HSSFWorkbook.ENCODING_COMPRESSED_UNICODE);
// font.setFontName("浠垮畫_GB2312");
// font.setFontName("瀹嬩綋");
// font.setFontName("Courier New");
//set cell stlye
cellStyle.setFont(font);
//set the cell format
// cellStyle.setDataFormat(dataFormat.getFormat("#,##0.0"));
//set a thin border
cellStyle.setBorderBottom(cellStyle.BORDER_THIN);
cellStyle.setBorderLeft(cellStyle.BORDER_THIN);
cellStyle.setBorderRight(cellStyle.BORDER_THIN);
cellStyle.setBorderTop(cellStyle.BORDER_THIN);
cellStyle.setWrapText(true);
//fill w fg fill color
// cellStyle.setFillPattern((short)HSSFCellStyle.SOLID_FOREGROUND);
//set the cell format to text see HSSFDataFormat for a full list
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
// set the font
// cellStyle.setFont(font);
//璁剧疆棰樺ご
// declare a cell object reference
HSSFCell cell = row.createCell((short)4, 5);
cell.setCellStyle(cellStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
heads.setCenter("");
// create 3 cell styles
cell.setCellValue(sTital);
// cell.setCellValue("浼氳
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -