Я пытаюсь отобразить BufferedImage на JPanel, но когда я запускаю программу, он ничего не отображает.Печать BufferedImage на JPanel
Я предполагаю, что это проблема с созданием BufferedImage, но, с моим ограниченным пониманием Java, я понятия не имею, что это за проблема. Кроме того, я хотел бы получить дополнительную информацию о методе paintComponent (что делает super.paintComponent (г) означает?)
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; isnt действительный syntex – Ryan
Он компилировался ранее ... Я предполагаю, что я изменил строку между тем, когда я последний раз запускал код, и когда я скопировал и вставил его. –
back to top (я не знаю, работает ли это на этом сайте) –