⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showscroll.java

📁 提供通用的java分页,可以根据需要调用和修改
💻 JAVA
字号:
package com.mingzi.ui;

import java.io.IOException;
import java.util.Calendar;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import com.mingzi.contrl.ListMail;

public class ShowScroll extends Canvas{
     ListMail listMail;
	//定义变量,height为屏幕的高度,width 屏幕的宽度,spacing 单位信息条目的高度,menuIndex表示信息的索引
    private int height,width,spaing=35,menuIndex,displayIndex,currentHeight=0,scrollHeight; 
    private String[] name=null; //定义用于存姓名和消息的数组
    private int i=0,pageSize;
    private Font info=null;

    /**
	 * 结构体 来初始化变量
	 */
    public ShowScroll(ListMail listMail){
    	this.listMail=listMail;
    	height=getHeight(); //取得屏幕高度
    	width=getWidth();   //读的屏幕的宽度
    	//创建两个字符串数组并初始化数据
    	name=new String[]{"李明梓","黄亮","谢挺疯","老婆","世界","老天","谢挺疯","老婆","世界","老天","谢挺疯","老婆","世界","老天"};
    	info=Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_LARGE);
    	pageSize=height/info.getHeight()-1;

    }

	/**
	 * 必须覆盖Canvas中的paint方法,对屏幕显示进行我们所需的绘制
	 */
	protected void paint(Graphics g) {
		//----进行手机画面的初化---------
		g.setColor(246,246,246); //设置背景色rgb
		g.fillRect(0,0,width,height);//画跟屏幕一样大小的矩形
		
		g.setColor(00,00,00);
		g.setFont(info);
		int j=0;
		for(;i<name.length;i++,j++){
		   if(i==menuIndex){
			   g.setColor(127,127,127);
			   g.drawRect(0,j*info.getHeight(),width-10,info.getHeight());
			   g.setColor(00,00,00);
			   g.drawString(name[i],60,j*(info.getHeight()),g.RIGHT|g.TOP);	 	   
			}else{
			   g.drawString(name[i],60,j*(info.getHeight()),g.RIGHT|g.TOP);
			}
		 
		}  
		drawScrollV(g,0xFF00FF,0xFF00FF,null,null,width-10,0,10,300,menuIndex*30,height);
	}
 
   protected void keyPressed(int code){
	   if((getGameAction(code)==Canvas.UP)&&menuIndex-1>=0){//判断是否是按向上按键 并判断信息的索引是否越界
		   menuIndex--; //信息索引减1
		   System.out.println("up " +menuIndex);
		  /* if(menuIndex<3){
		     i=Math.abs(displayIndex--);
		   }*/
		   i=0;
		   repaint();
	   }
	   if((getGameAction(code)==Canvas.DOWN)&&menuIndex+1<name.length){ //判断是否是按向下按键 并判断信息的索引是否越界
		   menuIndex++; //信息索引加1
		   System.out.println("down" +menuIndex);
		   i=0;
		   if(menuIndex>=3){
			   i=displayIndex++;
		   }
		   repaint();
	   }else{
		   menuIndex=0;
		   displayIndex=0;
		   i=0;
		   repaint();
	   }
   }
   
   public int updateDisplay(){
	      if(menuIndex<3){
	    	  return Math.abs(displayIndex--);
	      }else{
	    	  return ++displayIndex;
	      }
	    }
	/**
	 * 画垂直滚动条
	 * @param g:用于绘制的Graphics
	 * @param boardColor:边框颜色
	 * @param blockColor:滑块颜色
	 * @param blockImage:滑块图片
	 * @param boardImage:边框图片
	 * @param startx:起始坐标X
	 * @param starty:起始坐标Y
	 * @param sw:滚动条宽度
	 * @param sh:滚动条高度
	 * @param current:当前示数
	 * @param total:总数
	 */
	public  static void drawScrollV(Graphics g,int boardColor,int blockColor,Image boardImage,Image blockImage,int startx,int starty,int sw,int sh,int current,int total)
	{
		g.setColor(0);
		g.fillRect(startx,starty,sw,sh);
		if(boardImage!=null)
			g.drawImage(boardImage,startx,starty,0);
		else
			if(blockImage==null)
			{
				g.setColor(boardColor);
				g.drawRect(startx,starty,sw,sh);
			}
		if(blockImage!=null)
		{
			g.setColor(boardColor);
			g.drawRect(startx,starty,blockImage.getWidth()+1,sh);
			if(current==total)
				current=total+1;
			g.drawImage(blockImage,startx+1,starty+1+((current-1)*(sh-blockImage.getHeight()-1)/total),0);
		}
		else
		{
			/*计算滑块长度*/
			int blockH=0;
			if(sh/total>6)
				blockH=sh/total;
			else
				blockH=8;			
			g.setColor(blockColor);
			g.fillRect(startx+1,starty+1+Math.max((current-1)*(sh-1)/total,0),sw-1,blockH);
		}
	}
	public void drawScroll(Graphics g, int x, int y, int h, int selectIndex,int ci) {
		g.setClip(x, y, 4, h + 1);
		g.clipRect(x, y, 4, h + 1);
		g.setColor(0);
		g.drawRect(x, y, 3, h);
		/**
		 * 画滑动块
		 */
		int height = h;
		if (ci > 0) {
			height = h - 3 * ci;
		}
		if (height < 10) {
			height = 10;
		}
		// System.out.println("gaodu : " + height);
		g.setColor(255, 218, 125);
		g.fillRect(x, y + selectIndex * 3, 3, height);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -