3 回答
TA贡献1812条经验 获得超5个赞
我按照你的代码试了 完全没问题 不知道你那是什么情况 或许不是代码问题 是eclipse出问题了吧 试试 project>clean 一下工程试试. 再不行 换个别的模拟器的试试
public Server(MyMid middlet) {
super("你好");
this.middlet = middlet;
MessageArea area = new MessageArea("123");
append(area);
}
class MessageArea extends CustomItem {
protected MessageArea(String label) {
super(label);
Server.this.getHeight();//这里调用完全没问题
}
protected void paint(Graphics g, int width, int height) {
g.setColor(0xff0000);
g.fillRect(0, 0, width, height);
}
}
TA贡献1858条经验 获得超8个赞
如果需要子类里也可见,请把方法定义为protected,而非public
刚我看了下MIDP的源码,3个类继承关系Displayable->Screen->Form
其中Form和Displayable中都有getHeight方法且都是public。
但是,注意了Form中的getHeight()方法重写过了,和Displayable中的getHeight方法没有半毛钱关系。
所以Form中用getHeight方法是用Form自己的,和Displayable中的getHeight没关系。
据我记忆,子类本来就不能访问父类中的public对象。如果需要访问,请把对象定义为protected
所以1处应该用super.getHeight();
TA贡献1835条经验 获得超7个赞
一下是API上截取的:
getHeight
public int getHeight()Returns the height in pixels of the displayable area available for items. This value is the height of the form that can be displayed without scrolling. The value may depend on how the device uses the screen and may be affected by the presence or absence of the ticker, title, or commands.
Overrides:
getHeight in class Displayable
Returns:
the height of the displayable area of the Form in pixels
Since:
MIDP 2.0
添加回答
举报