举例说明实现同一个Display的不同窗口对象之间的切换的两种方法?我正在学习J2ME
1个回答
展开全部
一般在界面类中,因为界面类不是MIDlet的子类,所以需要获得Display对象有两个方法:
1、 传递MIDlet类型的对象
2、 传递Display类型的对象
下面就以传递Display对象为例来实现在界面类中进行切换。下面的程序为了简单起见,以两个Canvas界面为例来演示实际的传递,高级界面和这个使用完全一样。
MIDlet中的代码实现:
Display display;
public MyMIDlet(){
display = Display.getDisplay(this);
//创建需要显示的界面对象
FirstCanvas fc = new FirstCanvas(display);
//显示界面
display.setCurrent(fc);
}
第一个界面类的代码实现:
public class FirstCanvas extends Canvas{
Display display;
public FirstCanvas(Display display){
this.display = display;
}
/**绘制方法*/
public void paint(Graphics g){
g.drawString(“第一个界面”,30,40,Graphics.TOP | Graphics.LEFT);
}
/**事件处理*/
public void keyPressed(int keyCode){
display.setCurrent(new SecondCanvas(display)); //显示下一个界面
}
}
第二个界面类的代码实现和上一个类似:
Display display;
public SecondCanvas(Display display){
this.display = display;
}
上面的代码演示了如何使用传递Display对象的形式,在界面类中实现切换界面。当然除了该方式以外,需要实现该功能的方式还有很多种,这里只介绍这一种容易理解的实现方式。
1、 传递MIDlet类型的对象
2、 传递Display类型的对象
下面就以传递Display对象为例来实现在界面类中进行切换。下面的程序为了简单起见,以两个Canvas界面为例来演示实际的传递,高级界面和这个使用完全一样。
MIDlet中的代码实现:
Display display;
public MyMIDlet(){
display = Display.getDisplay(this);
//创建需要显示的界面对象
FirstCanvas fc = new FirstCanvas(display);
//显示界面
display.setCurrent(fc);
}
第一个界面类的代码实现:
public class FirstCanvas extends Canvas{
Display display;
public FirstCanvas(Display display){
this.display = display;
}
/**绘制方法*/
public void paint(Graphics g){
g.drawString(“第一个界面”,30,40,Graphics.TOP | Graphics.LEFT);
}
/**事件处理*/
public void keyPressed(int keyCode){
display.setCurrent(new SecondCanvas(display)); //显示下一个界面
}
}
第二个界面类的代码实现和上一个类似:
Display display;
public SecondCanvas(Display display){
this.display = display;
}
上面的代码演示了如何使用传递Display对象的形式,在界面类中实现切换界面。当然除了该方式以外,需要实现该功能的方式还有很多种,这里只介绍这一种容易理解的实现方式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询