자바 그래픽 프로그래밍 이미지가 안읽힙니다 ㅠㅠ
조회수 423회
해당 이미지를 프로젝트 안에 넣어놨는데도 이미지가 실행창에서 안읽힙니다. 소스코드는 책 내용 그대로 적어서 문제가 없는데, 왜이럴까요??
import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Random;
import javax.imageio.ImageIO; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel;
public class MyImageFrame extends JFrame implements ActionListener {
private int pieces = 4;
private int totalPieces = pieces * pieces;
private int[] pieceNumber;
private BufferedImage img;
public MyImageFrame() {
setTitle("Image Draw Test");
try {
img = ImageIO.read(new File("puppy.jpg"));
} catch (IOException e) {
System.out.println(e.getMessage());
System.exit(0);
}
pieceNumber = new int[totalPieces];
for (int i=0; i<totalPieces; i++) {
pieceNumber[i] = i;
}
JButton button = new JButton("DIVIDE");
add(new MyPanel(), BorderLayout.CENTER);
button.addActionListener(this);
add(button, BorderLayout.SOUTH);
setSize(img.getWidth(null), img.getHeight(null));
setVisible(true);
}
void divide() {
Random rand = new Random();
int ri;
for (int i=0; i<totalPieces; i++) {
ri = rand.nextInt(totalPieces);
int tmp = pieceNumber[i];
pieceNumber[i] = pieceNumber[ri];
pieceNumber[ri] = tmp;
}
}
class MyPanel extends JPanel{
public void paintComponenet(Graphics g) {
super.paintComponent(g);
int pieceWidth = img.getWidth(null) / pieces;
int pieceHeight = img.getHeight(null) / pieces;
for (int x=0; x<pieces; x++) {
int sx = x * pieceWidth;
for (int y=0; y<pieces; y++) {
int sy = y * pieceHeight;
int number = pieceNumber[x * pieces + y];
int dx = (number / pieces) * pieceWidth;
int dy = (number % pieces) * pieceHeight;
g.drawImage(img, dx, dy, dx+pieceWidth, dy+pieceHeight,
sx, sy, sx+pieceWidth, sy+pieceHeight, null);
}
}
add(new MyPanel(), BorderLayout.CENTER);
}
}
public static void main(String[] args) {
new MyImageFrame();
}
@Override
public void actionPerformed(ActionEvent e) {
divide();
repaint();
}
}
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력