全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1162
推到 Plurk!
推到 Facebook!

JInternalFrame

尚未結案
vespa
一般會員


發表:14
回覆:22
積分:7
註冊:2004-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-02 09:06:41 IP:163.13.xxx.xxx 未訂閱
不好意思,又來麻煩大家.. 我以下方的函式開啟一張圖片 請問要如何抓取指定CanvasFrame(繼承JInternalFrame)的Image物件 我想要在指定的CanvasFrame進行影像處理之後在同一個CanvasFrame顯示出來... 先說謝謝囉...     
 
   public void loadImage() {
     int option;
     JFileChooser file = new JFileChooser();
     file.addChoosableFileFilter(new extNameFilter());         option = file.showDialog(null, null);
     if(option == JFileChooser.CANCEL_OPTION)
     return;         // 新增畫布物件
     String filename = file.getSelectedFile().toString();
     ImageIcon imageIcon = new ImageIcon(filename);
     Image img = createImage(
     imageIcon.getIconWidth(), imageIcon.getIconHeight());
     Graphics g = img.getGraphics();
     g.drawImage(imageIcon.getImage(), 0, 0, this);         CanvasFrame frame = new CanvasFrame("畫布 " filename, img,
     createImage(imageIcon.getIconWidth(), imageIcon.getIconHeight()));         desktop.add(frame);
     frame.setVisible(true);
    }
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-02 09:37:18 IP:61.64.xxx.xxx 未訂閱
你指的是internal frame paint image後沒有顯示出來嗎? 那你可能要在frame.paint(Graphics g){繪出畫布....} 或是先試著去呼叫他的repaint(); validate();先試一下這兩個函數吧
vespa
一般會員


發表:14
回覆:22
積分:7
註冊:2004-02-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-02 09:51:18 IP:163.13.xxx.xxx 未訂閱
引言: 你指的是internal frame paint image後沒有顯示出來嗎? 那你可能要在frame.paint(Graphics g){繪出畫布....} 或是先試著去呼叫他的repaint(); validate();先試一下這兩個函數吧
圖片可以正常開啟 只不過開啟之後,在我用滑鼠點選任何一個CanvasFrame 我希望可以抓到CanvasFrame的Image物件 這樣我可以對Image再做修改(如轉黑白、灰階) 然後於同一個CanvasFrame中顯示出來..
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-02 10:38:27 IP:61.64.xxx.xxx 未訂閱
   Image activatingImage;
   ...
   ...
   IFAdp adapter=new IFAdp();
   x_canvasInternalframe.addInternalFrameListener(adapter);
   ...
   ...
   class IFAdp extends InternalFrameAdapter{
     public void internalFrameActivated(InternalFrameEvent e){
          activatingImage=((CanvasInternalframe)e.getSource()).getImage();
    }
   }
用InternalFrameListener去接受事件 發表人 - neoart 於 2004/09/02 10:41:17
vespa
一般會員


發表:14
回覆:22
積分:7
註冊:2004-02-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-02 11:27:23 IP:163.13.xxx.xxx 未訂閱
有一個錯誤訊息? cannot resolve symbol symbol : method getImage () location: class CanvasFrame activatingImage=((CanvasFrame)e.getSource()).getImage(); ^ 1 error
neoart
版主


發表:22
回覆:582
積分:425
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-02 11:39:40 IP:61.64.xxx.xxx 未訂閱
引言: 有一個錯誤訊息? cannot resolve symbol symbol : method getImage () location: class CanvasFrame activatingImage=((CanvasFrame)e.getSource()).getImage(); ^ 1 error
厚.... 你自己都會去繼承internalframe成為CanvasInternalFrame 那你為什麼不自己加一個"傳回CanvasInternalFrame所存放的Image"方法--"getImage()" 呢?
vespa
一般會員


發表:14
回覆:22
積分:7
註冊:2004-02-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-09-02 11:48:34 IP:163.13.xxx.xxx 未訂閱
引言: 厚.... 你自己都會去繼承internalframe成為CanvasInternalFrame 那你為什麼不自己加一個"傳回CanvasInternalFrame所存放的Image"方法--"getImage()" 呢?
呵 我試試...
系統時間:2024-05-09 8:45:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!