由于Netbeans的自动生成代码,在Java中的JFrame背景中设置映像

由于Netbeans的自动生成代码,在Java中的JFrame背景中设置映像,java,swing,netbeans,image,Java,Swing,Netbeans,Image,由于Netbeans自动生成的代码,我想在JFrame上设置一个图像背景 不幸的是,我正面临着这个问题: 当我试图以图形方式添加它时,在iconImage的详细信息上,我有一个错误:“不支持自定义编辑此属性” 我尝试了上面链接中给出的解决方案,但不幸的是,此代码不起作用: public ArrayList<Image> getIconImages() { ArrayList<Image> imageList = new ArrayList(); imageL

由于Netbeans自动生成的代码,我想在JFrame上设置一个图像背景

不幸的是,我正面临着这个问题:

当我试图以图形方式添加它时,在iconImage的详细信息上,我有一个错误:“不支持自定义编辑此属性”

我尝试了上面链接中给出的解决方案,但不幸的是,此代码不起作用:

public ArrayList<Image> getIconImages() {
   ArrayList<Image> imageList = new ArrayList();
   imageList.add(getClass().getResource("/<resource_path>" +
     "/image.png")).getImage());
   return imageList;  
}

你通常有两个选择

1-创建一个自定义
JPanel
,可以将图像绘制为其背景的一部分,然后将其添加到框架中(编译后,可以将其拖动到设计器中),查看

2-将
JFrame
的布局设置为
BorderLayout
,将JLabel添加到框架中。将图像/图标指定给标签。将标签的布局设置为所需,并将组件设置为所需

您可能需要调整标签内图标的水平和垂直位置,以满足您的需要


例如,查看前面的答案,我明白了。新问题是,如何将一些JLabel放在所有已经存在的组件后面,这些组件是netbeans的“设计”(图形方式)部分?我能想到的最简单的方法是将框架的
contentPane
设置为后台组件(您需要对其进行编码,使其出现在
initComponents
方法之前)或者简单地将您生成的组件拖到设计器中,然后将您的组件放到设计器的顶部。。。
jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/main/myimage/img.png")));