Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 JPanel上打印的动态图像量_Java_Image_Background Image_Paint - Fatal编程技术网

Java JPanel上打印的动态图像量

Java JPanel上打印的动态图像量,java,image,background-image,paint,Java,Image,Background Image,Paint,我有一个stickynote png图像,我希望基本上在运行时,获取数据库中的数据,然后在JPanel上打印尽可能多的图像,就像数据库中有记录一样,然后在每个png上打印文本,这样就有了stickynote类型的外观 我的问题是,当我循环并尝试创建图像时,我是否需要为每个图像对象创建单独的图像对象引用,或者我是否可以在循环中重用相同的图像对象?此代码将位于扩展JPanel的类中的paintComponent中。我觉得我对这一切的想法都错了 for example for(i=0;i<rec

我有一个stickynote png图像,我希望基本上在运行时,获取数据库中的数据,然后在JPanel上打印尽可能多的图像,就像数据库中有记录一样,然后在每个png上打印文本,这样就有了stickynote类型的外观

我的问题是,当我循环并尝试创建图像时,我是否需要为每个图像对象创建单独的图像对象引用,或者我是否可以在循环中重用相同的图像对象?此代码将位于扩展JPanel的类中的paintComponent中。我觉得我对这一切的想法都错了

for example for(i=0;i<recordCount; i++
{
   Image image = new ImageIcon("mysticky.png").getImage
}

例如(i=0;i您只需要一个图像

使用:


您可能希望在web上搜索java中的“背景图像”概念。

最好的方法(可能)是更改图像,将其放入JLabel,然后将JLabel添加到JPanel(可能使用GridLayout或BoxLayout)。重写paintComponent()是不必要的。但是,我如何给它们命名每次都不一样,因为可能需要可变数量的变量/image和JLabel,所以我如何动态命名它们呢?我真的很难理解这个基本上是在运行时创建的随机数目的变量的概念。我想我不是概念化的请给出一个更具体的代码示例,谢谢
ImageIcon image = new ImageIcon("mysticky.png");

@Override
public void paintComponent(Graphics g) {
  super.paintComponent(g);
    for(ImagePanelImage nextim : backgroundImages) {
      g.drawImage(image.getImage(), 0, 0, image.getIconWidth(), image.getIconHeight(), this);
    }
}