我正在尝试显示的图像未正确显示。
我正在使用ImageIO
阅读,然后将其绘制。
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class imagestukje extends JPanel {
private BufferedImage image;
public imagestukje() {
try {
image = ImageIO.read(new File("images/lingo.jpg"));
} catch (IOException e) {
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
}
}
为什么没有显示图像?
答案 0 :(得分:-1)
嗨,您应该在提出已经解决的问题之前使用搜索。
答案 1 :(得分:-1)
你可能有两个问题:
您可以通过以下方式改进小组:
public class ImagePanel extends JPanel {
BufferedImage image;
Dimension size = new Dimension();
public ImagePanel() {
}
public ImagePanel(BufferedImage image) {
this.image = image;
this.size.setSize(image.getWidth(), image.getHeight());
}
public void setImage(BufferedImage image) {
this.image = image;
this.size.setSize(image.getWidth(), image.getHeight());
}
@Override
protected void paintComponent(Graphics g) {
if(this.image != null) {
g.drawImage(this.image, x, y, this);
}
}
@Override
public Dimension getPreferredSize() {
return this.size;
}
}
因此,在配置完UI后,您可以使用以下任何图像初始化该面板:
try {
image = ImageIO.read(new File("images/lingo.jpg"));
((ImagePanel) jPanel).setImage(image);
jPanel.invalidate();
jPanel.repaint();
} catch (IOException e) {
}