不應該在晚上八點多打盹的...

 

現在完全沒睡意Orz

 

原本以為 Java 在寫程式的時候,只要把


import java.awt.*;
import javax.swing.*;
import java.io.*;

以上加入即可使用底下所有的 class

 

沒想到 compiler 的時候一直跳錯 

 

BufferedImage : cannot find symbol

後來才發現要完整加入才能正常使用


import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;

 

另外就是使用 Thread 的類別實作時還需要另外用個類別來顯示

否則在 Thread 裡面使用 main() 也會跳錯

 


import java.awt.*;
import javax.swing.*;
import java.io.*;


import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
 
 

class ImageComponent implements Runnable

        String Filename; //  目前的檔名
BufferedImage image; //  目前的影像 
        JFrame f; //  目前的視窗 
        public ImageComponent(String aFilename)

                Filename=aFilename; 
                image=LoadImage(Filename); 
        } 
        //  載入一張影像 
        public static BufferedImage LoadImage(String Filename)

                BufferedImage image; 
                try

                        image=ImageIO.read(new File(Filename)); 
                }
catch(Exception e)

                        javax.swing.JOptionPane.showMessageDialog(null, "載入圖檔錯誤: "+Filename); 
                        image=null; 
                } 
                return image; 
        }  
        //  顯示一張影像 
        public void Show()

                SwingUtilities.invokeLater(this); 
        } 
        //  實體化影像物件的方法 
        public void run()

                  f = new JFrame(""); 
                   
                // Step 1:  若影像超過螢幕,  則加入捲軸 
                JScrollPane scrollPane = new JScrollPane(new JLabel(new ImageIcon(image))); 
                f.getContentPane().add(scrollPane); 
                f.pack(); 
                 
                // Step 2:  設定點選  x  表示關閉視窗 
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
                 
                // Step 3:  加入視窗標題 
                f.setTitle(Filename+" "+image.getWidth()+" x "+image.getHeight()); 
                 
                // Step 4:  設定視窗顯示在螢幕中央 
                f.setLocationRelativeTo(null);   
                // Step 5:  顯示出視窗 
                f.setVisible(true); 
        } 







public class MyShow
{


public static void main(String argv[])
{


ImageComponent Img = new ImageComponent("D:\\1.JPG");
Img.Show();

}




文章標籤
全站熱搜
創作者介紹
創作者 figer 的頭像
figer

日劇看不完

figer 發表在 痞客邦 留言(0) 人氣(3,114)