Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将paintComponet称为agian_Java_Swing - Fatal编程技术网

Java 将paintComponet称为agian

Java 将paintComponet称为agian,java,swing,Java,Swing,我创建了一个ImagePanel类,该类获取一个ImageIcon对象并将其绘制为ShowPanel import javax.swing.JPanel; import javax.swing.ImageIcon; import java.awt.Graphics; class ImagePanel extends JPanel { private ImageIcon img; public ImagePanel(ImageIcon img) { this.s

我创建了一个ImagePanel类,该类获取一个ImageIcon对象并将其绘制为ShowPanel

import javax.swing.JPanel;
import javax.swing.ImageIcon;
import java.awt.Graphics;

class ImagePanel extends JPanel {
    private ImageIcon img;

    public ImagePanel(ImageIcon img) {
        this.setImage(img);
    }

    public void setImage(ImageIcon img){
        this.img = img;

    }

    @Override
    public void paintComponent(Graphics g) {
        if(img instanceof ImageIcon)
            g.drawImage(img.getImage(), 0, 0, this.getWidth(), this.getHeight(), null);
    }
}
但问题是,当我改变img时,它不会显示在面板上,直到我改变帧大小。我如何更新它


EDIT:repaint()不会清除面板上的最后一个img。

通常,您只需在
setImage
方法中调用
repaint

您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵

您应该考虑重写<代码> GETApple Read St< <代码>,以确保组件在大多数布局管理器下正确布局。这应反映

img
的大小


除非有其他原因,否则您可以使用
JLabel

而不受惩罚。通常,您只需在
setImage
方法中调用
repaint

您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵

您应该考虑重写<代码> GETApple Read St< <代码>,以确保组件在大多数布局管理器下正确布局。这应反映

img
的大小


除非有其他原因,否则您可以使用
JLabel

而不受惩罚。通常,您只需在
setImage
方法中调用
repaint

您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵

您应该考虑重写<代码> GETApple Read St< <代码>,以确保组件在大多数布局管理器下正确布局。这应反映

img
的大小


除非有其他原因,否则您可以使用
JLabel

而不受惩罚。通常,您只需在
setImage
方法中调用
repaint

您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵

您应该考虑重写<代码> GETApple Read St< <代码>,以确保组件在大多数布局管理器下正确布局。这应反映

img
的大小


除非您有其他原因,否则您可以使用
JLabel

我不能使用JLabel,因为我需要向它添加一些对象,并且我需要图像大小为az面板大小。我以前使用过repaint(),但它没有删除最后一个img。“您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵的可能性。”+1。从听起来,这就是问题的确切原因。我不明白。我应该在哪里添加super.paintComponent(),应该使用什么参数?您可以重写一个方法,但不知道如何调用它的super?是时候回到java教程的介绍章节了:-)我不能使用JLabel,因为我需要向它添加一些对象,我需要图像大小为az面板大小。我以前使用过repaint(),但它没有删除最后一个img。“您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵的可能性。”+1。从听起来,这就是问题的确切原因。我不明白。我应该在哪里添加super.paintComponent(),应该使用什么参数?您可以重写一个方法,但不知道如何调用它的super?是时候回到java教程的介绍章节了:-)我不能使用JLabel,因为我需要向它添加一些对象,我需要图像大小为az面板大小。我以前使用过repaint(),但它没有删除最后一个img。“您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵的可能性。”+1。从听起来,这就是问题的确切原因。我不明白。我应该在哪里添加super.paintComponent(),应该使用什么参数?您可以重写一个方法,但不知道如何调用它的super?是时候回到java教程的介绍章节了:-)我不能使用JLabel,因为我需要向它添加一些对象,我需要图像大小为az面板大小。我以前使用过repaint(),但它没有删除最后一个img。“您应该调用
super.paintComponent
,以防止在渲染过程中引入绘制瑕疵的可能性。”+1。从听起来,这就是问题的确切原因。我不明白。我应该在哪里添加super.paintComponent(),应该使用什么参数?您可以重写一个方法,但不知道如何调用它的super?是时候回到java教程的介绍性章节了:-)1)要更快地获得更好的帮助,请发布一个(最简单、完整、经过测试且可读的示例)。2) 获取示例图像的一种方法是热链接到中所示的图像。1)为了更快地获得更好的帮助,请发布一个(最小的完整测试和可读示例)。2) 获取示例图像的一种方法是热链接到中所示的图像。1)为了更快地获得更好的帮助,请发布一个(最小的完整测试和可读示例)。2) 获取示例图像的一种方法是热链接到中所示的图像。1)为了更快地获得更好的帮助,请发布一个(最小的完整测试和可读示例)。2) 例如,获取图像的一种方法是热链接到中看到的图像。