为什么img.getHeight(null)和img.getWidth(null)总返回-1?图片可以正常画出

qq_32122581 qq_32122581 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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);

}


}

...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
qq_32122581
Java SE 62,620 成员 307,251 内容