0
package chapter4;
import java.awt.Color;
import java.awt.Graphics;``
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;
import javax.swing.JFrame;
/**
*
* @author Ale
*/
public class DrawImage extends JFrame{
private Image image;
public static void main(String[] args){
new DrawImage();
}
public DrawImage(){
super("DrawImage");
setSize(600,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit tk= Toolkit.getDefaultToolkit();
image= tk.getImage(getURL("yoshi.PNG"));
}
private URL getURL(String filename){
URL url;
try{
url= this.getClass().getResource(filename);
}
catch(Exception e){}
return null;
}
/**
*
* @param g
*/
@Override
public void paint(Graphics g){
Graphics2D g2d=(Graphics2D) g;
g2d.setBackground(Color.WHITE);
g2d.fillRect(0, 0, getSize().width, getSize().height);
g2d.drawImage(image, 20, 40, this);
}
}
이미지는이 클래스와 같은 폴더에 있지만 오류를 발생시키고 이미지를 표시하지 않습니다. 오류는 다음과 같습니다.DrawImage가 Java에서 작동하지 않음
등이 있습니다. 제발 도와주세요. 파일은 mario의 yoshi png 파일입니다.
'JFrame'과 같은 최상위 컨테이너의'paint'를 오버라이드하는 대신'JPanel'을 사용하고'paintComponent' 메소드를 오버라이드해야합니다. 또한 항상'super.paintXxx'를 호출해야합니다. 그렇지 않으면 매우 불쾌한 페인트 효과로 끝날 수 있습니다. 자세한 내용은 [사용자 정의 페인팅 수행] (http://docs.oracle.com/javase/tutorial/uiswing/painting/)을 참조하십시오. 또한 'JLabel'을 사용하여 동일한 결과를 얻을 수 있습니다. – MadProgrammer