package ch17;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;

public class Ch1701 extends JFrame {

 private static final long serialVersionUID = 1L;

 private Ch1701Panel jContentPane = null;

 /**
  * This is the default constructor
  */
 public Ch1701() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }

 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private Ch1701Panel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new Ch1701Panel();
   jContentPane.setLayout(new BorderLayout());
  }
  return jContentPane;
 }

}

******** Ch1701Panel.java *****
package ch17;

import java.awt.Graphics;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JPanel;
import javax.tools.Tool;

public class Ch1701Panel extends JPanel {

 private static final long serialVersionUID = 1L;

 //이미지를 저장할 이미지 멤버변수 선언
 private Image image;
 /**
  * This is the default constructor
  */
 public Ch1701Panel() {
  super();
  image=Toolkit.getDefaultToolkit().getImage("D:\\study\\java\\Project\\sample\\src\\ch17\\sering.jpg");
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(300, 200);
  this.setLayout(new GridBagLayout());
 }

 //swing은 애니메이션시 잔상남아서 해결하는 방법. 아래.
 @Override
 protected void paintComponent(Graphics g) {
  // TODO 자동 생성된 메소드 스텁
  super.paintComponent(g);
  g.drawImage(image, 0, 0, this);
 }
}

Posted by 말없제이
,