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);
}
}