|
-
November 18th, 1999, 03:29 AM
#1
print problem...
help ! this print program print nothing . all source code included.
i am using jdk1.2.2 on win 95 pc.
if i use a smaller jtable. it will print the jframe. why ? how can i print a big jframe ?
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import javax.swing.*;
import javax.swing.table.*;
public class ComponentPrinterFrame
extends JFrame
implements Printable {
Object[][] datas = new Object[][]{
{"SNo." ,"0", "000", "0000","111","zzz","bbb","ccc" },
{"Name" ,"1", "000", "0000","111","zzz","bbb","ccc" },
{"Three" ,"2", "000", "0000","111","zzz","bbb","ccc" },
{"Language","1", "000", "0000","111","zzz","bbb","ccc" },
{"Four" ,"2", "000", "0000","111","zzz","bbb","ccc" },
{"Five ---" ,"3","000", "0000","111","zzz","bbb","ccc" }};
Object[] column = new Object[]{"col 1 ","col 2","Column Three", "eps", "hts","hiv","pgs","psi"};
DefaultTableModel data = new DefaultTableModel(datas, column) {
public boolean isCellEditable(int row, int col) {
return false;
}
public Class getColumnClass(int col) {
return String.class;
}
};
public static void main(String[] args) {
ComponentPrinterFrame cpf = new ComponentPrinterFrame();
cpf.setVisible(true);
}
public ComponentPrinterFrame() {
super("ComponentPrinterFrame v1.0");
createUI();
}
protected void createUI() {
JTable table = new JTable( data );
table.setCellSelectionEnabled(false);
table.setRowSelectionAllowed(false);
table.getTableHeader().setReorderingAllowed(false);
table.getTableHeader().setResizingAllowed(false);
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
JButton printButton = new JButton("Print");
JLabel lbStartDate = new JLabel("Start Date : ");
JLabel lbEndDate = new JLabel("End Date : ");
panel.add(printButton);
panel.add(new JList(new Object[] { "One", "Two", "Three" }));
panel.add(new JButton("Push me"));
panel.add(new JCheckBox("Chess", true));
panel.add(new JComboBox(new Object[] { "Eins", "Zwei", "Drei" }));
panel2.add(lbStartDate);
panel2.add(lbEndDate);
panel3.add(table);
printButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
PrinterJob pj = PrinterJob.getPrinterJob();
pj.setPrintable(ComponentPrinterFrame.this);
if (pj.printDialog()) {
try { pj.print(); }
catch (PrinterException pe) {
System.out.println(pe);
}
}
}
});
Container contentPane = getContentPane();
contentPane.add(panel,BorderLayout.NORTH);
contentPane.add(panel2,BorderLayout.CENTER);
contentPane.add(panel3,BorderLayout.SOUTH);
// getContentPane().add(panel);
// getContentPane().add(panel2);
setSize(400, 400);
// Center.
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = getSize();
int x = (screenSize.width - frameSize.width) / 2;
int y = (screenSize.height - frameSize.height) / 2;
setLocation(x, y);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
});
}
public int print(Graphics g, PageFormat pf, int pageIndex) {
if (pageIndex != 0) return NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D)g;
g2.translate(pf.getImageableX(), pf.getImageableY());
getContentPane().paint(g2);
return PAGE_EXISTS;
}
}
http://members.xoom.com/lookads
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|