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

📄 shapesprint.java

📁 这是java 2应用开发指南这本书上所有例子的源代码
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.print.*;
import javax.swing.*;
public class ShapesPrint extends JPanel implements Printable, ActionListener {
   final static JButton button = new JButton("Print");
   public ShapesPrint() {
      setBackground(Color.white);
      button.addActionListener(this);
   }
   public void actionPerformed(ActionEvent e) {
         if (e.getSource() instanceof JButton) {
            PrinterJob printJob = PrinterJob.getPrinterJob();
            printJob.setPrintable(this);
            if (printJob.printDialog()) {
               try {
                  printJob.print();
               }
               catch (Exception ex) {
                  ex.printStackTrace();
               }
            }
         }
      }
      public void paintComponent(Graphics g) {
              super.paintComponent(g);
              Graphics2D g2 = (Graphics2D) g;
              drawShapes(g2);
      }
      public void drawShapes(Graphics2D g2){
            int x = 80;
            int y = 80;
            g2.draw(new Line2D.Double(x, y, x + 70, y + 150));
            x += 100;
            g2.setPaint(Color.red);
            g2.fill(new Rectangle2D.Double(x, y, 70, 150));
            g2.setPaint(Color.black);
         }
      public int print(Graphics g, PageFormat pf, int pi) throws PrinterException {
            if (pi >= 1) {
               return Printable.NO_SUCH_PAGE;
            }
            drawShapes((Graphics2D) g);
            return Printable.PAGE_EXISTS;
         }
       public static void main(String s[]){
               WindowListener l = new WindowAdapter() {
                  public void windowClosing(WindowEvent e) {
                     System.exit(0);
                  }
                  };
               JFrame f = new JFrame();
               f.addWindowListener(l);
               JPanel panel = new JPanel();
               panel.add(button);
               f.getContentPane().add(BorderLayout.SOUTH, panel);
               f.getContentPane().add(BorderLayout.CENTER, new ShapesPrint());
               f.setSize(380, 400);
               f.show();
            }
}

⌨️ 快捷键说明

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