我創建了一個示例應用程序,我想要滾動,但我無法實現所需的輸出。如何在j2me畫布中滾動?
我試圖塗料方法中下面的代碼>>>>>
g.translate(x,y);
和通過爲可變的「y」在KeyDown和keyup事件的值。
任何人都可以幫助我做到這一點?
我創建了一個示例應用程序,我想要滾動,但我無法實現所需的輸出。如何在j2me畫布中滾動?
我試圖塗料方法中下面的代碼>>>>>
g.translate(x,y);
和通過爲可變的「y」在KeyDown和keyup事件的值。
任何人都可以幫助我做到這一點?
您是否嘗試過在keyUP中減少Y的值,並調用repaint()
方法也會對keyDown做同樣的事情,但現在Y的值將遞減並調用repaint()
方法。
使用g.translate(x, changingYvalue);
嘗試。
最簡單的方法(儘管內存密集型)是使用MutableImage,並繪製負y座標。
可變圖像只是一個新的圖像(w,h)。
然後你得到它的Graphics上下文,使用myImage.getGraphics()
,並用這個Graphics對象繪製。它用作屏幕外緩衝區。
比油漆(圖形克),您撥打:
g.drawImage(0,y,...);
,你循環每個系統調用減少y以作畫。
(不要屏蔽油漆! - 每個調用都是一個幀,並且您正在逐幀製作動畫
從另一個線程執行動畫循環,您可以減少y,然後調用repaint()和sleep)。
我認爲應該在paint
方法中繪製滾動條。點擊滾動條的箭頭時,你實現了keyReleased
方法。爲了實現scrolling
,我更願意致電repaint();
,我將用布爾邏輯或某些其他類型的專用variable
來管理paint
方法。
最有可能是你的代碼中存在一個錯誤。如果您顯示在Canvas#keyPressed和Canvas#paint中使用的代碼,則會更容易分辨。另外,你如何測試你的應用程序 - 你使用模擬器?你從代碼寫日誌消息? – gnat 2012-02-10 07:51:28