如何在j2me画布中滚动?

时间:2012-02-09 09:55:46

标签: java-me midp lcdui

我已经创建了一个示例应用程序,我想要滚动,但我无法实现所需的输出。

我在paint方法中尝试了以下代码>>>>>

g.translate(x,y);

并在keydown和keyup事件中传递变量'y'的值。

任何人都可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

最简单的方法(尽管内存密集)是使用MutableImage,并使用负y坐标绘制它。

可变图像只是一个新图像(w,h) 然后使用myImage.getGraphics()获取其Graphics上下文,并使用此Graphics对象进行绘制。它可以作为屏幕外缓冲区。

比在绘画(图形g)中,你打电话:

g.drawImage(0,y,...);

在每个系统调用中循环减少y以进行绘制 (不要阻挡油漆! - 每个调用是一帧,你正在逐帧动画
从另一个线程执行动画循环,减少y,而不是调用repaint()和sleep。。

答案 1 :(得分:1)

您是否尝试过在keyUP中减少Y的值并且调用repaint()方法也与keyDown一样,但现在Y的值将递减并调用repaint()方法。

使用g.translate(x, changingYvalue);

试试这个。

答案 2 :(得分:0)

我认为滚动条应该在paint方法中绘制。并且在单击滚动条的箭头时实现keyReleased方法。要实现scrolling我更喜欢调用repaint();,我将使用布尔值或其他类型的私有paint来管理variable方法。