使用JLabel作为背景图像

时间:2013-06-23 20:37:40

标签: java swing jframe jlabel imageicon

当我运行代码时,它只会打开一个空窗口 我也很重视任何必要的事情

代码的相关部分:

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然后将其添加到框架中,但它仍然没有在窗口中显示任何内容

3 个答案:

答案 0 :(得分:2)

最初的代码是:

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

答案 1 :(得分:0)

在布局中设置元素的显示顺序非常重要,也许您可​​以在标签上显示一些内容。

答案 2 :(得分:0)

我猜你的目录结构如下:

-c:\java  
  - source (for source and class files)  
    - graphic (for your images)
background=new JLabel(new ImageIcon("/graphics/board.gif"));

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

另外,请勿使用:

this.setSize(800,600);

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

this.pack();

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