这里有一个新手,但是这是一个解释我的问题的小测试代码.打印的值为-1.我对如何返回图像的像素宽度没有丝毫的线索,我错过了一些非常明显的东西吗?整个ImageObserver的东西没有任何意义!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class imagetest2 extends JPanel {
Image i =Toolkit.getDefaultToolkit().getImage(/*image*/);
public int test(){
int x = i.getWidth(null);
return x;
}
}
class imagetest {
public static void main(String args[]){
imagetest2 tesst = new imagetest2();
System.out.print(tesst.test());
}
}
Run Code Online (Sandbox Code Playgroud)
Toolkit.getDefaultToolkit().getImage() 可能异步加载几乎不是你想要的图像.
使用ImageIO和a BufferedImage也可以有getWidth()和getHeight()没有ImageObserver参数(虽然其他的也可以工作,如果你通过null):
BufferedImage image = ImageIO.read("/*image*/");
int width = image.getWidth();
Run Code Online (Sandbox Code Playgroud)