我不懂Image类!我在这做错了什么?

Der*_*gon 3 java image

这里有一个新手,但是这是一个解释我的问题的小测试代码.打印的值为-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)

Phi*_*art 5

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)