使用 JLabel 作为背景图像

Posted

技术标签:

【中文标题】使用 JLabel 作为背景图像【英文标题】:Using JLabel for a background image 【发布时间】:2013-06-23 20:37:39 【问题描述】:

当我运行代码时,它只会打开一个空窗口 我也很重要,无论什么是必要的

相关部分代码:

public class Game extends JFrame implements ActionListener,KeyListener
    private JLabel background; 
....  
public Game()
background=new JLabel(new ImageIcon("/graphics/board.gif"));
...
this.add(background);
this.setSize(800,600);
this.setVisible(true);...

我尝试将 JLabel 添加到 JPanel,然后将其添加到框架中,但窗口中仍然没有显示任何内容

【问题讨论】:

我认为您为 JLabel 使用了错误的构造函数(假设您不想显示 text "/graphics/board.gif")。跨度> 【参考方案1】:

原来的代码是:

JLabel background = new JLabel("/graphics/board.gif");

这不会将图像设置在所描述的路径,建议使用以下方法(这可以简化为只使用不同的 JLabel 构造函数,但为清楚起见显示了步骤)

创建并加载图像,然后为标签设置图标如下

ImageIcon icon = new ImageIcon("/graphics/board.gif"); 
JLabel background = new JLabel();
background.setIcon(icon);

Link to ImageIcon Java Doc

【讨论】:

不,不应该,但这不是原始帖子的内容。是new JLabel("/graphics/board.gif");【参考方案2】:

在布局中设置元素的显示顺序很重要,也许你有一些东西显示在标签上..

【讨论】:

【参考方案3】:

我猜你的目录结构类似于:

-c:\java - source(用于源文件和类文件) - 图形(用于您的图像)
background=new JLabel(new ImageIcon("/graphics/board.gif"));

不要在文件名中指定前导“/”。这告诉 Java 查看 C 驱动器的根目录,而不是执行类的目录。

另外,不要使用:

this.setSize(800,600);

图像不会拉伸以填充框架的大小。 Intead 你应该使用:

this.pack();

所以框架将是图像的大小。

【讨论】:

以上是关于使用 JLabel 作为背景图像的主要内容,如果未能解决你的问题,请参考以下文章

java界面的背景图片怎么加,如果把图片加在JLabel上填满面板那怎么样才能再加button?

php 将后缩略图作为背景图像添加到任何div

如何在 netbeans 中为 JPanel 设置背景图像? [复制]

如何使用线性布局添加背景图像作为根布局并具有嵌套线性布局

只能添加JLabel背景或JPanel背景

如何更改 JLabel 或我添加的任何其他组件的位置?