1

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

代码的相关部分:

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

4

3 回答 3

2

最初的代码是:

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

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

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

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

链接到 ImageIcon Java 文档

于 2013-06-23T20:46:56.663 回答
0

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

于 2013-06-23T20:41:51.697 回答
0

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

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

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

另外,不要使用:

this.setSize(800,600);

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

this.pack();

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

于 2013-06-23T22:55:22.733 回答