Java 对背景图像使用JLabel
当我运行代码时,它只会打开一个空窗口 必要时我也很重要 守则的有关部分:Java 对背景图像使用JLabel,java,swing,jframe,jlabel,imageicon,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);
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 background = new JLabel("/graphics/board.gif");
这不会在描述的路径上设置图像,建议使用以下方法(可以简化为仅使用不同的JLabel构造函数,但为了清晰起见,显示了步骤)
创建并加载图像,然后设置标签图标,如下所示
ImageIcon icon = new ImageIcon("/graphics/board.gif");
JLabel background = new JLabel();
background.setIcon(icon);
我猜您的目录结构类似于: -c:\java - source (for source and class files) - graphic (for your images) 不要在文件名中指定前导“/”。这告诉Java查看C驱动器的根目录,而不是类执行所在的目录 此外,不要使用:
this.setSize(800,600);
图像不会拉伸以填充帧的大小。Intead您应该使用:
this.pack();
因此,框架将是图像的大小。我认为您对
JLabel
使用了错误的构造函数(假设您不想显示文本“/graphics/board.gif”)。不应该,但这不是原始帖子的内容。它是新的JLabel(“/graphics/board.gif”)代码>
this.pack();