有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用swing打印jframe?

我有打印账单的要求,这只是一个Jframe,我有两个类

当我点击Generate Bill按钮(来自CreateBill.java类),然后调用另一个类的构造函数,即GridBagLayoutDemo2(int-id),Bill窗口已经显示出来,现在我想在点击print按钮时打印这个Jframe,但我不知道该怎么做

这是我的两门课

比尔。爪哇

class CreateBill extends JPanel implements ActionListener,ItemListener
{
    GridBagLayout gbag;
    GridBagConstraints cons;
    DefaultTableModel model;

    static JTable table;

    String columnNames [] ={"Sr.No","Particulars","Item Price","Quantity","Amount"};

    JComboBox box1,box2,box3,box4,box5,box6,box7;
    JButton b1,b2,b3,b4,b5,b6,b7;
    String ids,ids1,ids2,ids3,ids4,str1,str2,str3,str4,y;
    Vector v1,v2,v3,v4,v5;
    Connection con;
    Statement stmt;
    String vegitm,yourdate;
    PreparedStatement ps,ps1,ps2,ps3,ps4;
    ResultSet rs,rs1,rs2,rs3,rs4,gs1,gs2,gs3,gs4,rs5,rs6,rs7,rs8,rs9;
    static int p;
    Float price,Total=0.0f,res;
    JLabel lbl;
    int index ,k=0,f=0,id=0;

    public CreateBill()
    {
            lbl = new JLabel();
            lbl.setFont(new Font("calibri",Font.BOLD,20));
            lbl.setForeground(Color.red);

                //create GridBagLayout object
                gbag = new GridBagLayout();

                //set gridbag layout content pane
                setLayout(gbag);

                //create GridBagConstraints object
                cons = new GridBagConstraints();


            try
            {

                Class.forName("com.mysql.jdbc.Driver");
                con=DriverManager.getConnection("Jdbc:mysql://localhost:3306/hotel?user=root&password=root");
                stmt = con.createStatement();

                 //fetch names from teleenq table
                 rs = stmt.executeQuery("select fullname from teleenq");
                 v1 = new Vector();
                 while(rs.next())
                 {
                     ids = rs.getString(1);
                     v1.add(ids);
                 }
                  box1 = new JComboBox(v1);

                //fetch common packages from common_pkg table
                 rs1 = stmt.executeQuery("select pkgName from common_pkg");
                 v2 = new Vector();
                 while(rs1.next())
                  {
                      ids1 = rs1.getString(1);
                      v2.add(ids1);
                  }

                 box2 = new JComboBox(v2);
                 box2.addActionListener(this);


                //fetch vegcategories from veg_cat
                 rs2 = stmt.executeQuery("select * from veg_cat");
                 v3 = new Vector();
                 while(rs2.next())
                  {
                      ids2 = rs2.getString(1);
                      v3.add(ids2);

                  }
                 box3 = new JComboBox(v3);
                box3.addActionListener( new ActionListener() 
                {

                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {
                        if(e.getSource() == box3 )
                        {
                            String str1 = (String)box3.getSelectedItem();
                            System.out.println(str1);
                            try
                            {
                                gs1 = stmt.executeQuery("select veg_itemname from veg_catitems where veg_cat ='" + str1 + "'");

                                 int k=0;
                                 while(gs1.next())
                                  {

                                      k++;
                                  }

                                 String[] strArr = new String[k];

                                 gs1.beforeFirst();

                                 int l=0;
                                 while(gs1.next())
                                 {
                                     vegitm = gs1.getString(1);
                                     strArr[l]= vegitm;
                                     l++;

                                 }

                                box4.setModel(new DefaultComboBoxModel((String[])strArr));
                            }
                            catch(Exception ae)
                            {
                                ae.printStackTrace();
                            }
                        }

                    }   
                });

                //for vegcat-items
                box4 = new JComboBox();
                box4.addItem("select veg-items");
                box4.addActionListener(this);

                //fetch nonveg category from nonveg_cat
                 rs3 = stmt.executeQuery("select * from nonveg_cat");
                 v4 = new Vector();
                 while(rs3.next())
                 {
                    ids3 = rs3.getString(1);
                    v4.add(ids3);
                 }

                 box5 = new JComboBox(v4);
                 box5.addActionListener(new ActionListener()
                 {

                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {


                        if(e.getSource() == box5)
                        {
                            String str1 = (String)box5.getSelectedItem();
                            System.out.println(str1);
                            try
                            {
                                gs2 = stmt.executeQuery("select Nonveg_itemname from nonveg_catitems where Nonveg_cat ='" + str1 + "'");

                                 int k=0;
                                 while(gs2.next())
                                  {

                                      k++;
                                  }

                                 String[] strArr = new String[k];

                                 gs2.beforeFirst();

                                 int l=0;
                                 while(gs2.next())
                                 {
                                     vegitm = gs2.getString(1);
                                     strArr[l]= vegitm;
                                     l++;

                                 }

                                box6.setModel(new DefaultComboBoxModel((String[])strArr));

                            }   
                            catch(Exception ae)
                            {
                                ae.printStackTrace();
                            }

                        }   
                    }
                });

                 //for nonveg items
                  box6 = new JComboBox();
                 box6.addItem("Select Non-veg items");
                 box6.addActionListener(this);


                 box7 = new JComboBox();
                // box7.addItem("Select Quantity ");

                 for(int i=0;i<100;i++)
                 {
                    box7.addItem( new Integer(i));
                 }
                box7.addItemListener(this); 



            }//end of try
            catch(Exception e)
            {
                e.printStackTrace();
            }
                //create 5 push bottons
                 b1 = new JButton("ADD Name");
                 b2 = new JButton("ADD Package");
                 b2.addActionListener(this);
                 b3 = new JButton("ADD Veg-items");
                 b3.addActionListener(this);
                 b4 = new JButton("ADD Nonveg-items");
                 b4.addActionListener(this);
                //for all buttons , use horizontal filling
                cons.fill = GridBagConstraints.FIRST_LINE_START;


                //display box1 at x,y cooridnates 0,0
                cons.gridx = 0;
                cons.gridy = 0;


                //set the above constraints to button1
                gbag.setConstraints(box1,cons);

                //add the button1 to content pane
                add(box1);

                //display button2 at x,y coordinates 1,0
                cons.gridx=1;
                cons.gridy =0;

                //remaining constatints applicable as set for previous button
                //set constraints to button2
                gbag.setConstraints(box2, cons);
                add(box2);

                //display button at x,y coordiantes 2,0
                cons.gridx = 2;
                cons.gridy = 0;

                //remaining constraints applicable as set for previouse button
                //set constraints to button3
                gbag.setConstraints(box3, cons);
                add(box3);


                //display button2 at x,y coordinates 1,0

                cons.gridx=3;
                cons.gridy =0;

                //remaining constatints applicable as set for previous button
                //set constraints to button2
                gbag.setConstraints(box4, cons);
                add(box4);

                //display button at x,y coordiantes 2,0
                cons.gridx = 4;
                cons.gridy = 0;

                //remaining constraints applicable as set for previouse button
                //set constraints to button3
                gbag.setConstraints(box5, cons);
                add(box5);


                cons.gridx=5;
                cons.gridy =0;

                //remaining constatints applicable as set for previous button
                //set constraints to button2
                gbag.setConstraints(box6, cons);
                add(box6);

                //display button at x,y coordiantes 2,0
                cons.gridx = 6;
                cons.gridy = 0;

                        //remaining constraints applicable as set for previouse button
                        //set constraints to button3
                gbag.setConstraints(box7, cons);
                add(box7);

                cons.anchor = GridBagConstraints.LINE_START;
                cons.insets = new Insets(10,0,0,0);


                //display button 1 at x,y coordinates
                cons.gridx = 0;
                cons.gridy = 1;
                gbag.setConstraints(b1, cons);
                b1.addActionListener(this);
                add(b1);

                //display button 1 at x,y coordinates
                cons.gridx = 1;
                cons.gridy = 1;
                gbag.setConstraints(b2, cons);
                add(b2);

                //display button 1 at x,y coordinates
                cons.gridx = 3;
                cons.gridy = 1;
                gbag.setConstraints(b3, cons);
                add(b3);


                //display button 1 at x,y coordinates
                cons.gridx = 5;
                cons.gridy = 1;
                gbag.setConstraints(b4, cons);
                add(b4);

                model = new DefaultTableModel();

                model.setColumnIdentifiers(columnNames);

                table = new JTable();

                table.setModel(model);

                //table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);

                table.setFillsViewportHeight(true);

                JScrollPane sp = new JScrollPane(table);

                sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

                sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);


                cons.anchor = GridBagConstraints.CENTER;

                //cons.insets = new Insets(10,150,0,0);

                cons.gridx = 3;
                cons.gridy = 2;

                gbag.setConstraints(lbl, cons);
                add(lbl);


                cons.anchor = GridBagConstraints.LINE_START;

                cons.insets = new Insets(20,0,0,0);


                cons.gridx = 0;
                cons.gridy = 3;

                cons.ipady = 50;
                cons.ipadx = 450;

                cons.gridwidth = 7;

                gbag.setConstraints(sp, cons);
                add(sp);

                cons.anchor = GridBagConstraints.PAGE_END;
                b5 = new JButton("Bill Total");
                b5.addActionListener(this);
                cons.ipady = 0;
                cons.ipadx = 0;

                cons.gridx = 0;
                cons.gridy = 5;

                gbag.setConstraints(b5, cons);
                add(b5);

                b6 = new JButton("Generate Bill");
                b6.addActionListener(this);
                cons.gridx = 2;
                cons.gridy = 5;


                gbag.setConstraints(b6, cons);
                add(b6);

                b7 = new JButton("Cancel Bill");
                b7.addActionListener(this);
                cons.gridx = 4;
                cons.gridy = 5;


                gbag.setConstraints(b7, cons);
                add(b7);

                setVisible(true);

    }//close of constructor

    @Override
    public void itemStateChanged(ItemEvent e) 
    {
        int state = e.getStateChange();
        System.out.println("State :"+state);
        if(e.SELECTED == state)
        {
            index = box7.getSelectedIndex();
        }

    }


    @Override
    public void actionPerformed(ActionEvent e)
    {
        try
        {
            stmt = con.createStatement();
            rs9 = stmt.executeQuery("select * from bill_1");

            while(rs9.next())
            {
                id = rs9.getInt(1);
            }


        }
        catch(Exception ae)
        {
            ae.printStackTrace();
        }

        String str1 = " ";

        if(e.getSource() == b1)
        {
            String strName = (String)box1.getSelectedItem();

            lbl.setText(strName);

            DateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd");
            Date date = new Date();

            yourdate = dateformat.format(date);


            try 
            {
                ps = con.prepareStatement("insert into bill_1(cust_name,Bill_date) values(?,?)");

                ps.setString(1,strName);
                ps.setString(2,yourdate);

                ps.executeUpdate();

            } catch (SQLException e1) 
            {
                e1.printStackTrace();
            }


        }

        if(e.getSource() == b2)
        {

            if(index==0)
            {
                JOptionPane.showMessageDialog(null,"Please select Qunatity");
            }
            else
            {   
                 str1 = (String)box2.getSelectedItem();

                System.out.println("status :"+box2.isEnabled() +" "+"String :"+str1);

                if(str1.equals(null))
                {
                    JOptionPane.showMessageDialog(null,"Please select Common Package");
                }
                else
                {
                    try 
                    {
                    rs5 = stmt.executeQuery("select package_price from common_pkg where pkgName = '"+str1+"'");

                    Integer o = (Integer)box7.getSelectedItem();

                    int qty = o.intValue();

                    while(rs5.next())
                    {
                        p++;
                        price = rs5.getFloat(1);
                        res = qty * price;
                        model.addRow(new Object[]{p,str1,price,qty,res});
                    }

                    Total+=res;

                    ps1 =con.prepareStatement("insert into bill_2 values(?,?,?,?,?,?)");

                    ps1.setInt(1,p);
                    ps1.setString(2,str1);
                    ps1.setFloat(3,price);
                    ps1.setInt(4,qty);
                    ps1.setFloat(5,res);
                    ps1.setInt(6,id);

                    ps1.executeUpdate();

                    box7.removeAllItems();
                    for(int i=0;i<100;i++)
                     {
                        box7.addItem( new Integer(i));
                     }

                } 
                catch (SQLException e1) 
                {
                    e1.printStackTrace();
                }           
                index = 0;
            }   
        }
    }
        else if(e.getSource() == b3)
        {
            String str2 =" ";
            if(index==0)
            {
                JOptionPane.showMessageDialog(null,"Please select Qunatity");
            }
            else
            {
                    str2 = (String)box4.getSelectedItem();

                    if(str2.equals(""))
                    {
                        JOptionPane.showMessageDialog(null,"Please select Common Package");
                    }
                    else
                    {

                    if(str2.equals(" "))
                    {
                        JOptionPane.showMessageDialog(null,"Please select veg_item");
                    }
                        try 
                        {
                            rs6 = stmt.executeQuery("select veg_itemprice from veg_catitems where veg_itemname = '"+str2+"'");

                            Integer o = (Integer)box7.getSelectedItem();

                            int qty = o.intValue();

                            while(rs6.next())
                            {
                                p++;
                                price = rs6.getFloat(1);
                                res = qty * price;
                                model.addRow(new Object[]{p,str2,price,qty,res});
                            }

                            Total+=res;

                            ps1 =con.prepareStatement("insert into bill_2 values(?,?,?,?,?,?)");

                            ps1.setInt(1,p);
                            ps1.setString(2,str2);
                            ps1.setFloat(3,price);
                            ps1.setInt(4,qty);
                            ps1.setFloat(5,res);
                            ps1.setInt(6,id);

                            ps1.executeUpdate();

                            box7.removeAllItems();
                            for(int i=0;i<100;i++)
                             {
                                box7.addItem( new Integer(i));
                             }

                        } 
                      catch (SQLException e1) 
                        {
                            e1.printStackTrace();
                        }                       

                        index = 0;
                    }   
            }       
        }
        else if(e.getSource() == b4)
        {

            String str3=" ";
            if(index==0)
            {
                JOptionPane.showMessageDialog(null,"Please select Qunatity");
            }
            else
            {
                    str3 = (String)box6.getSelectedItem();

                    if(str3.equals(""))
                    {
                        JOptionPane.showMessageDialog(null,"Please select Common Package");
                    }
                    else
                    {
                    System.out.println("status :"+box6.isEnabled() +" "+"String :"+str2);

                    try 
                    {
                        rs7 = stmt.executeQuery("select Nonveg_itemprice from nonveg_catitems where Nonveg_itemname = '"+str3+"'");

                        Integer o = (Integer)box7.getSelectedItem();

                        int qty = o.intValue();

                        while(rs7.next())
                        {
                            p++;
                            price = rs7.getFloat(1);
                            res = qty * price;

                            model.addRow(new Object[]{p,str3,price,qty,res});
                        }

                        Total+=res;

                        ps1 =con.prepareStatement("insert into bill_2 values(?,?,?,?,?,?)");

                        ps1.setInt(1,p);
                        ps1.setString(2,str3);
                        ps1.setFloat(3,price);
                        ps1.setInt(4,qty);
                        ps1.setFloat(5,res);
                        ps1.setInt(6,id);

                        ps1.executeUpdate();
                        box7.removeAllItems();
                        for(int i=0;i<100;i++)
                         {
                            box7.addItem( new Integer(i));
                         }

                    } 
                  catch (SQLException e1) 
                    {
                        e1.printStackTrace();
                    }                       
                    index = 0;
                }              
            }   
        }
        if(e.getSource() == b5)
        {
            if(k==0)
            {
                //int id = 0;
                String s1 = " ";
                String s2 = "Total";
                model.addRow(new Object[]{s1});
                model.addRow(new Object[]{null,null,null,s2,Total});
                k++;

                try 
                {
                    /*stmt = con.createStatement();
                    rs9 = stmt.executeQuery("select * from bill_1");

                    while(rs9.next())
                    {
                        id = rs9.getInt(1);
                    }*/

                    String sql = "update bill_1 set Total = '" + Total + "'  where Bill_id ='" + id +"'";
                    stmt.executeUpdate(sql);
                }
                catch (SQLException e1) 
                {
                    e1.printStackTrace();
                }


            }
            else
            {

                JOptionPane.showMessageDialog(null,"Bill is already generated");

            }

        }
        if(e.getSource() == b7)
        {
            p=0;
            while(model.getRowCount()>0)
            {
                model.removeRow(0);             

            }
            Total=0.0f;
            k=0;
        }
        if(e.getSource() == b6)
        {
            new GridBagLayoutDemo2(id);
        }

    }//close action listener



}//close of class

screen shot of CreateBill.java

GridBagLayoutDemo2。爪哇

import javax.swing.*;
import javax.swing.table.DefaultTableModel;


import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class GridBagLayoutDemo2 extends JFrame 
{
    //variables

    JFrame frameToPrint;
    GridBagLayout gbag;
    GridBagConstraints cons;

    //variables
    JLabel lbl1,lbl2,lbl3,lbl4,lbl5,lbl6,lbl7;
    JButton b1;
    DefaultTableModel model;
    Connection con;
    Statement stmt;
    String vegitm;
    PreparedStatement ps,ps1,ps2,ps3,ps4;
    ResultSet rs,rs1,rs2,rs3,rs4,gs1,gs2,gs3,gs4,rs5,rs6,rs7,rs8,rs9;
    static int p;
    Float price,Total=0.0f,res,ft,Item_price,amt;
    JLabel lbl;
    int index ,k=0,f=0,srno;
    int qty;
    String s1,s3,s4,particulars,yourdate;
    Date s2;
    static JTable table;

    String columnNames [] ={"Sr.No","Particulars","Item Price","Quantity","Amount"};

    CreateBill c;

    public GridBagLayoutDemo2(int id) 
    {

        try
        {

            Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection("Jdbc:mysql://localhost:3306/hotel?user=root&password=root");
            stmt = con.createStatement();

             //fetch names from teleenq table
             rs = stmt.executeQuery("select * from bill_1 where Bill_id = '" + id +"'");

             while(rs.next())
             {
                 s1 = rs.getString(2);
                 s2 = rs.getDate(3);
                 ft = rs.getFloat(4);
             }



             //get the content pane
             Container c = getContentPane();

             //create GridBagLayout object
             gbag = new GridBagLayout();

             //set gridbag layout to content pane
             c.setLayout(gbag);

             //create GridBagConstaints object
             cons = new GridBagConstraints();

             //create Components
            lbl1 = new JLabel("4 SEASONS CATERERS");
            lbl2 = new JLabel("4 Seasons Farmhouse Society Clibhouse, S. No.436/1 to 441,Bhugaon,Pune");
            lbl3 = new JLabel("************************ Mob N0 : 9922863031 **************************");

            lbl1.setForeground(Color.DARK_GRAY);

            lbl1.setFont(new Font("Calibari",Font.BOLD,35));
            lbl2.setFont(new Font("Calibari",Font.BOLD,15));
            lbl3.setFont(new Font("Calibari",Font.BOLD,15));


            lbl4 = new JLabel("Customer Name :- " +s1);
            lbl4.setFont(new Font("Calibari",Font.BOLD,20));

            lbl5 = new JLabel("Date:- "+s2);
            lbl5.setFont(new Font("Calibari",Font.BOLD,10));

            lbl6 = new JLabel("Bill No:-"+id);
            lbl6.setFont(new Font("Calibari",Font.BOLD,15));

            //for table
            model = new DefaultTableModel();

            model.setColumnIdentifiers(columnNames);

            table = new JTable();

            table.setModel(model);

            table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);

            table.setFillsViewportHeight(true);

            JScrollPane sp = new JScrollPane(table);

            sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

            sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);


            rs1 = stmt.executeQuery("select * from bill_2 where Bill_id = '" + id +"'");

            String empty = " ";
            String st = "Total";
             while(rs1.next())
             {
                 srno = rs1.getInt(1);
                 particulars = rs1.getString(2);
                 Item_price = rs1.getFloat(3);
                 qty = rs1.getInt(4);
                 amt = rs1.getFloat(5);

                 model.addRow(new Object[]{srno,particulars,Item_price,qty,amt});
             }
             model.addRow(new Object[]{empty});
             model.addRow(new Object[]{null,null,null,st,ft});

            //for button
            b1 = new JButton("PRINT");
            b1.addActionListener(new Paction(frameToPrint));


            cons.anchor = GridBagConstraints.PAGE_START;

            cons.gridx = 5;
            cons.gridy = 0;

            gbag.setConstraints(lbl1,cons);

            c.add(lbl1);

            cons.gridx = 5;
            cons.gridy = 1;

            gbag.setConstraints(lbl2,cons);

            c.add(lbl2);

            cons.gridx = 5;
            cons.gridy = 2;

            gbag.setConstraints(lbl3,cons);

            c.add(lbl3);


            //add 100-px height-wise
            cons.ipady = 60;

            cons.gridx = 5;
            cons.gridy = 7;

            gbag.setConstraints(lbl4,cons);

            c.add(lbl4);


            cons.anchor = GridBagConstraints.FIRST_LINE_START;

            cons.gridx = 2;
            cons.gridy = 7;

            cons.ipady = 0;


            gbag.setConstraints(lbl5,cons);

            c.add(lbl5);


            cons.gridx = 6;
            cons.gridy = 7;

            gbag.setConstraints(lbl6,cons);

            c.add(lbl6);

            cons.anchor = GridBagConstraints.LINE_START;

            cons.ipady = 0;

            cons.gridx = 5;
            cons.gridy = 8;

            cons.ipady = 10;
            cons.ipadx = 400;

            gbag.setConstraints(sp, cons);
            add(sp);

            cons.anchor = GridBagConstraints.PAGE_END;

            cons.ipadx = 0;

            cons.gridx = 5;
            cons.gridy = 9;

            gbag.setConstraints(b1,cons);

            c.add(b1);

            setSize(1030,900);
            setTitle("Bill");
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        }
        catch(Exception ae)
        {
            ae.printStackTrace();
        }

    }


}
    /*public static void main(String[] args)
    {
        GridBagLayoutDemo2 demo = new GridBagLayoutDemo2();

    }*/

    class Paction implements ActionListener,Printable
    {
        JFrame  frameToPrint;
        @Override
        public void actionPerformed(ActionEvent e) 
        {
            PrinterJob job = PrinterJob.getPrinterJob();//get printer job list

            job.setPrintable(this);

            if(job.printDialog() == true){
                try{
                     job.print();
                }
                catch(PrinterException ex){
                    ex.printStackTrace();
                }
            }

        }

        @Override
        public int print(Graphics g, PageFormat pf, int page) throws PrinterException,PrinterException 
        {

          if (page > 0) { /* We have only one page, and 'page' is zero-based */
              return NO_SUCH_PAGE;
            }

            /*
             * User (0,0) is typically outside the imageable area, so we must translate
             * by the X and Y values in the PageFormat to avoid clipping
             */
            Graphics2D g2d = (Graphics2D) g;
            g2d.translate(pf.getImageableX(), pf.getImageableY());

            /* Now print the window and its visible contents */
        //    frameToPrint.printAll(g);

            /* tell the caller that this page is part of the printed document */
            return PAGE_EXISTS;
        }

        public Paction(JFrame f){
            frameToPrint = f;
        }

}

screenshot of GridBagLayoutDemo2.java

当我点击打印按钮时,我会看到打印对话框,但当我打印它时,我会看到空白页。如果有人知道的话,请帮帮我,我这几天一直在尝试

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    在你的GridBagLayoutDemo2中。java删除声明JFrame frameToPrint;(您甚至从未初始化它),将b1.addActionListener(new Paction(frameToPrint));更改为b1.addActionListener(new Paction(this));,并且不要忘记取消Paction类中的//frameToPrint.printAll(g);注释