【发布时间】:2010-11-29 04:16:17
【问题描述】:
如何在 J2ME 的表单中更改 CustomItem 的大小?我创建了一个CustomItem(javax.microedition.lcdui.CustomItem 的派生类)并将其放在一个表单(javax.microedition.lcdui.Form 的派生类)中。在一些事件触发后,我想改变CustomItem 的高度和宽度。我应该如何更改我的代码?
【问题讨论】:
如何在 J2ME 的表单中更改 CustomItem 的大小?我创建了一个CustomItem(javax.microedition.lcdui.CustomItem 的派生类)并将其放在一个表单(javax.microedition.lcdui.Form 的派生类)中。在一些事件触发后,我想改变CustomItem 的高度和宽度。我应该如何更改我的代码?
【问题讨论】:
在 MIDP 中,CustomItem 由封闭容器 Form 呈现。 MIDP 没有提供一种方法来通知它的父级它的大小已经改变。所以这种行为必须在你的代码中手工制作。
假设您的事件在用户按下 OK (FIRE) 时触发,那么您将需要调用 repaint() 或 repaint(x,y,w,h)。此重绘调用会导致绘制整个 CustomItem 或仅绘制矩形部分。这反过来会调用您(CustomItem)的paint() 方法,您可以在其中绘制更大尺寸的组件。
【讨论】:
我得到了解决方案。我们应该为具有新属性的新 CustomItem 创建一个新对象。然后从表单中删除现有的 CustomItem 并在表单中添加新的 CustomItem。
【讨论】: