为什么img.getHeight(null)和img.getWidth(null)总返回-1?图片可以正常画出
public class FrameGame extends JFrame{
PanelGame pe=null;
public FrameGame(){
//设置标题
this.setTitle("java俄罗斯方块");
//设置大小
this.setSize(1200, 700);
//定义让窗体居于显示器中间显示
Toolkit toolkit=Toolkit.getDefaultToolkit();
Dimension screen= toolkit.getScreenSize();
int h=(int)screen.getHeight();
int w=(int)screen.getWidth();
this.setLocation((w-this.getWidth())/2, (h-this.getHeight())/2);
//将PanelGame面板对象添加到窗体中
pe=new PanelGame();
this.add(pe);
//定义不允许改变窗体大小
//this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
package main;
import ui.FrameGame;
public class Main {
public static void main(String[] args){
new FrameGame();
}
}
package ui;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class PanelGame extends JPanel{
private Lay lay1=new Lay(32,32,128,256);
public PanelGame(){
}
@Override
public void paintComponent(Graphics g){
lay1.createWindow(g);
}
}
package ui;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
public class Lay {
private static final int SIZE=7;
Image img=Toolkit.getDefaultToolkit().getImage("graphics/window/Window.png");
int picW=img.getWidth(null);
int picH=img.getHeight(null);
/*窗口左上角x坐标
* */
private int x;
/*窗口左上角y坐标
* */
private int y;
/*窗口宽度
* */
private int w;
/*窗口高度
* */
private int h;
public Lay(int x, int y, int w, int h) {
this.x = x;
this.y = y;
this.w = w;
this.h = h;
}
public void createWindow(Graphics g){
g.drawImage(img, 0, 0, null);
System.out.println(picW);
System.out.println(picH);
}
}