J2ME 翻页例子

本文介绍了一个基于Java MIDP平台的简单文本翻页阅读器的实现方法。该阅读器通过TextCanvas类实现了基本的翻页功能,允许用户通过数字键4和6进行前后翻页,并在Canvas上绘制文本内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//执行类
public class Test extends MIDlet{    
private Display display;    
private TextCanvas tcanvas;    
  
public Test() {    
// TODO Auto-generated constructor stub    
display=Display.getDisplay(this);    
tcanvas=new TextCanvas(this);    
}    
  
protected void startApp() throws MIDletStateChangeException {    
display.setCurrent(tcanvas);    
  
}    
  
protected void pauseApp() {    
// TODO Auto-generated method stub    
  
}    
  
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {    
// TODO Auto-generated method stub    
  
}    
  
}    
  

  //翻页实现类

public class TextCanvas extends Canvas {    
    
InputStream is;    
InputStreamReader ir;    
int b=0,page=1,num=-1;    
private int count=0;    
private String str=new String();    
private String ss=new String();   
private static final int MAX_SIZE=10;    
    
    
public TextCanvas(Test test) {    
  str=this.getText();    
  System.out.println("--text.size--"+str.length());   
}    
  
protected void paint(Graphics g) {    
// TODO Auto-generated method stub    
  int x = 0;   
        int y = 0;   
  //设置画布颜色   
//  g.setColor(0xD8d8BF);   
//     g.fillRect(0,0,this.getWidth(),this.getHeight());     
             
          g.setColor(255, 255, 255);   
       g.fillRect(0, 0, getWidth(), this.getHeight());    
            
       ss=this.TurnPage(count);   
       g.setColor(0x000000);//设置内容颜色   
       g.drawString(ss, x, y,Graphics.LEFT|Graphics.TOP);   
}    
  
protected void keyPressed(int keyCode){    
     
//4向前翻页,6向后翻页;    
if(keyCode==Canvas.KEY_NUM6){    
System.out.println("-------6向后翻页--------");    
this.changePage(page);    
page++;   
this.repaint();   
}    
else if(keyCode==Canvas.KEY_NUM4){    
System.out.println("---------4向前翻页----------");    
this.changePage(page-1);    
page--;   
this.repaint();   
}    
}   
    
//翻页功能pageNum==1时向下翻一页,pageNum==-1时向上翻一页    
public int changePage(int pageNum){    
  
System.out.println("--前count--/"+count+"----pageNume----/"+pageNum);    
if(page>=1){    
count=MAX_SIZE*pageNum;    
} else if(page <1){    
count=0;    
}    
System.out.println("--后count--/"+count);    
      return count;   
}    
  
//截取当前页字符串    
protected String TurnPage(int start){    
String temp="";    
int end=start+MAX_SIZE;   
int ks=start;   
System.out.println(ks+"/"+end);   
if(end<=str.length()){   
temp=str.substring(ks,end);    
}else if(ks<str.length()){   
  temp=str.substring(ks);   
}else{   
  temp="文本已读完!!";   
}   
System.out.println("------str---"+temp+"-currentPage--/"+page);   
return temp;    
}    
  
    
// 获取文件中的字符将其放入字符串对象中    
protected String getText(){    
  
is = getClass().getResourceAsStream("/a.txt");    
ir=new InputStreamReader(is);    
  
if (null != is) {    
int ch = 0;    
try {    
while ((ch = ir.read()) != -1) {    
str=str.concat(String.valueOf((char)ch));    
}    
} catch (IOException e) {    
e.printStackTrace();    
}    
// System.out.println("-------获取文件中的字符---"+str);    
return str;    
} else {    
return null;    
}    
}    
  
    
}   
一、综合实战—使用极轴追踪方式绘制信号灯 实战目标:利用对象捕捉追踪和极轴追踪功能创建信号灯图形 技术要点:结合两种追踪方式实现精确绘图,适用于工程制图中需要精确定位的场景 1. 切换至AutoCAD 操作步骤: 启动AutoCAD 2016软件 打开随书光盘中的素材文件 确认工作空间为"草图与注释"模式 2. 绘图设置 1)草图设置对话框 打开方式:通过"工具→绘图设置"菜单命令 功能定位:该对话框包含捕捉、追踪等核心绘图辅助功能设置 2)对象捕捉设置 关键配置: 启用对象捕捉(F3快捷键) 启用对象捕捉追踪(F11快捷键) 勾选端点、中心、圆心、象限点等常用捕捉模式 追踪原理:命令执行时悬停光标可显示追踪矢量,再次悬停可停止追踪 3)极轴追踪设置 参数设置: 启用极轴追踪功能 设置角度增量为45度 确认后退出对话框 3. 绘制信号灯 1)绘制圆形 执行命令:"绘图→圆→圆心、半径"命令 绘制过程: 使用对象捕捉追踪定位矩形中心作为圆心 输入半径值30并按Enter确认 通过象限点捕捉确保圆形位置准确 2)绘制直线 操作要点: 选择"绘图→直线"命令 捕捉矩形上边中点作为起点 捕捉圆的上象限点作为终点 按Enter结束当前直线命令 重复技巧: 按Enter可重复最近使用的直线命令 通过圆心捕捉和极轴追踪绘制放射状直线 最终形成完整的信号灯指示图案 3)完成绘制 验证要点: 检查所有直线是否准确连接圆心和象限点 确认极轴追踪的45度增量是否体现 保存绘图文件(快捷键Ctrl+S)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值