package com.han; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.net.URL; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; /** * 相比上一个例子(Graphics_7)而言:拖动窗口调整大小时,没有白光闪烁 * @author HAN * */ @SuppressWarnings("serial") public class Graphics_8 extends JFrame { static CanvasPanel myPanel; public Graphics_8() { // TODO Auto-generated constructor stub myPanel = new CanvasPanel(); getContentPane().add(myPanel); JButton button = new JButton("HAN Gaowen"); myPanel.add(button); } class CanvasPanel extends JPanel { public void paint(Graphics g) { super.paint(g); Graphics2D g2 = (Graphics2D) g; URL imgURL = this.getClass().getResource("/images/Lighthouse.jpg"); Image image = Toolkit.getDefaultToolkit().getImage(imgURL); g2.drawImage(image, 0, 0, this.getWidth(), this.getHeight(), this); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Graphics_8 frame = new Graphics_8(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setTitle("绘制图片"); frame.setSize(440, 300); frame.setVisible(true); System.out.println(myPanel.getSize()); } }