及時更新畫面 |
答題得分者是:neoart
|
Sephiroth105
一般會員 發表:13 回覆:5 積分:3 註冊:2003-05-17 發送簡訊給我 |
老問題 不好意思.... 在主要的JFrame上面有兩個繼承panel的物件drawPanel
假設是p1,p2
JFrame切割成左右兩部分JPanel: left宇right
我先將p1貼在left上面
drawPanel上實做了滑鼠事件
現在,當我click p1 的時候會更新p2的畫面
我把更新的這個動作寫在drawPanel的mouseClicked裡面
public void mouseClicked(MouseEvent e)
{
.......
.......
p2 = new drawPanel(xxxx);
right.add(p2);
right.repaint();
}
不過實際的結果,當我click p1的時候
p2的畫面沒有辦法即時的呈現在JFrame上
必須當JFrame有任何需要更新(repaint)的時候,p2的畫面才會貼上去
剛剛試著把 right.add(p2) 寫在JFrame的paint中
不過似乎出了很大的錯誤
請問我該怎麼寫才能在click之後馬上把畫面呈現出來??
而不必等到frame的畫面更動才出現
請多指教~
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
|
Sephiroth105
一般會員 發表:13 回覆:5 積分:3 註冊:2003-05-17 發送簡訊給我 |
上面為初始畫面,且我已經點了畫面上其中一個node
產生了圖示在左邊的畫面上..
但是並沒有馬上顯示出來 在更動了整個frame的邊框後
應該是畫面更新,左邊的圖這才顯示出來 假設我最後是把左邊畫面加在Frame的其中一塊Panel上面
叫做JPanel left
我目前是把我的drawPanel這class寫成整個Frame的內部類別 而在drawPanel的mouseClicked事件中
因為我每次click都會重新new一次我新產生的drawPanel物件
之後會移除目前left上的所有物件,並加上新產生的畫面
left.removeAll();
left.add(newPane);
left.repaint(); //我想更新畫面,不過無效,必須整個畫面更動才有效
大致上是這樣
主要問題我不知道爲什麼沒辦法在click的時候就更新畫面?? 謝謝 ~~~
|
neoart
版主 發表:22 回覆:582 積分:425 註冊:2003-05-09 發送簡訊給我 |
|
Sephiroth105
一般會員 發表:13 回覆:5 積分:3 註冊:2003-05-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |