我想將一個BufferedImage顯示到JPanel上,但是當我運行程序時它不顯示任何內容。在JPanel上打印BufferedImage
我想這是創建BufferedImage的問題,但是由於對Java的理解有限,我不知道可能會出現什麼問題。我還希望有關的paintComponent方法的一些更多的信息(這是什麼super.paintComponent方法(G)是什麼意思?)
Main.java
public class Main {
public static void main (String[] args) {
Window.windowMake("This is a window");
}
}
Window.java
import java.awt.image.BufferedImage;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.imageio.ImageIO;
public class Window extends JFrame {
public static void windowMake(String title) {
JFrame jf = new JFrame();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(300,300);
jf.setVisible(true);
jf.setTitle(title);
jf.add(new Paint());
}
}
Paint.java
import java.io.IOException;
import java.io.File;
import java.awt.image.BufferedImage;
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.imageio.ImageIO;
public class Paint extends JPanel {
BufferedImage sprite = new
BufferedImage(60,60,BufferedImage.TYPE_INT_ARGB);
public void createBufImg() {
try {
sprite = ImageIO.read(new File("/Images/Scene.png"));
System.out.println("File read");
} catch (IOException e) {
System.out.println("Could not read image");
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(sprite,20,20,this);
}
}
代碼甚至沒有編譯行BufferedImage sprite = new;不是一個有效的syntex – Ryan
它正在編譯早些時候...我想我改變了我上次運行代碼和當我複製和粘貼它之間的界限。 –
回到頂部(我不知道這是否適用於本網站) –