使用 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?