JAVA;使用java.awt.Image的不稳定性

在使用awt的image时候,不是能时时获取到图像的宽和高,

GetWidth()函数偶尔得到的值为-1,暂时没有找到解决方法。


代码:

   public class picture extends JFrame  
    {  
	ImageIcon icon = new ImageIcon();
	Image image;// =Toolkit.getDefaultToolkit().getImage("D:\DataSet\CNN\YoloV1\hunt.jpg");
      
      picture( String imagepath )  
       {//constructor  
             
            image = Toolkit.getDefaultToolkit().getImage(imagepath); 
            //ImageObserver  obj = new ImageObserver();
            int h =image.getHeight( null );//-1
    		int w =image.getWidth( null );
    		System.out.print("h:");System.out.print(h);System.out.printf(" 
");
    		System.out.print("w:");System.out.print(w);System.out.printf(" 
");
            this.setSize( 800,480 ); 
            this.setSize( w,h ); 
            icon.setImage( image );  
            JButton button = new JButton();  
            button.setIcon(icon);  
      
            this.getContentPane().add(button);  
            this.setVisible(true);  
        }  
       
       picture( String imagepath ,int w, int h)  
       {//constructor  
             
            image = Toolkit.getDefaultToolkit().getImage(imagepath); 
            //ImageObserver  obj = new ImageObserver();
            //int h =image.getHeight( null );//-1
    		//int w =image.getWidth( null );
    		System.out.print("h:");System.out.print(h);System.out.printf(" 
");
    		System.out.print("w:");System.out.print(w);System.out.printf(" 
");
            //this.setSize( 800,480 ); 
            this.setSize( w,h ); 
            icon.setImage( image );  
            JButton button = new JButton();  
            button.setIcon(icon);  
      
            this.getContentPane().add(button);  
            this.setVisible(true);  
        }  
      
    } 
	

使用方法:

       使用初始化直接载入图像尽心一次显示。怎么刷新呢?


原文地址:https://www.cnblogs.com/wishchin/p/9199905.html