[問題] 新手Applet drawImage問題

作者: jc91027557 (永和慈世平)   2015-04-06 12:49:28
最近被老師要求用Applet實作一些東西
所以雖然Applet已經不是主流了但是因為這要求還是要用Applet
我把問題大致"簡化"成跟貓有關的程式如下
我用一個class當作貓的資料
Class cat{
Public String name;
Public Image img;
Public int year;
Public int kg;
}
因為有很多貓所以我有用一個全域的ArrayList<cat> catInfo;
來存這些貓的資料
我會用一個輸入框TextField讓使用者輸入貓的數量
按下Button就會呼叫一個做初始化的initcat()把數量跟catInfo傳進去
public void initcat(int num, ArrayList<cat> al){
for(int i = 0; i < num; i++){
cat c = new cat();
c.name = "";
c.img = cat1; //就是某張貓咪圖
*插入點1
//因為需要我這邊有在init其他資訊
//就假設我把kg和year包在另一個function
initcat2(c.kg,c.year);
*插入點2
al.add(c);
}
}
然後在paint裡面我想把貓的圖畫出來
public void paint(Graphics g){
for(int i = 0; i < catInfo.size(); i++){
g.drawImage(catInfo.get(i).img, x, y, this); //感謝pttworld大提醒
//確不會在畫面上有圖出現
}
}
大致上我的問題簡化如上
/////////
我自己的猜測是跟this之類的觀念有關
或是在我呼叫function中出了問題
因為我試著把kg或year要印出來也沒辦法
而且在插入點1和2就有不一樣的結果
我目前嘗試
確定在initcat內的c是有讀到圖
在initcat()內有嘗試
在插入點1分別用
g.drawImage(c.img,x,y,this);
g.drawImage(al.get(0).img,x,y,this);
都可以順利畫出來
但是在插入點2加入這兩行就都沒有反應
覺得問題就出在裡面呼叫function那我使用不當
但是爬文Google也找不到相關的問題
所以上來板上問大家><
(小弟原本習慣是寫C 最近才剛接觸Java一些觀念還不太熟)

Links booklink

Contact Us: admin [ a t ] ucptt.com