【问题标题】:Setting an image in the background of a JFrame in Java thanks to auto-generated code of Netbeans由于 Netbeans 的自动生成代码,在 Java 中的 JFrame 的背景中设置图像
【发布时间】:2012-09-06 23:22:05
【问题描述】:

借助 Netbeans 自动生成的代码,我想在 JFrame 上设置图像背景。

不幸的是,我正面临这个确切的问题: http://www.areaofthoughts.com/2011/08/netbeans-jframe-properties-iconimage.html

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

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

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

这段代码有什么问题,我该如何解决这个背景问题(无论如何?)。

请注意,当我使用 Netbeans 为标签做这件事时,我做这件事没有任何问题。例如,生成的代码如下:

jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/main/myimage/img.png")));    

【问题讨论】:

    标签: java swing netbeans image


    【解决方案1】:

    你通常有两种选择。

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

    2- 将JFrame 的布局设置为BorderLayout,在框架中添加一个JLabel。为标签分配图像/图标。将标签的布局设置为您需要的任何内容以及您的组件。

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

    举个例子,看看这个之前的回答Place JLabel on top of JLabel with image in

    【讨论】:

    • 我明白了。那么新的问题,如何将一些 JLabel 放置在所有已经存在于 netbeans 的“设计”(图形方式)部分的组件后面?
    • 我能想到的最简单的方法是将框架的 contentPane 设置为背景组件(您需要对此进行编码,使其出现在 initComponents 方法之前)或简单地拖动您'将生成的组件放入设计器并将您的组件放在它上面......
    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 2013-03-07
    • 2022-08-16
    • 2014-01-13
    • 2011-02-08
    • 2021-10-05
    相关资源
    最近更新 更多