`
alexlikeask
  • 浏览: 10345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

J2ME实现的滚动条ScrollBar

阅读更多

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="248" height="331" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"> <param name="src" value="/admin/blogs/586731/e:/scrollbar.png"> <embed type="application/x-shockwave-flash" width="248" height="331" src="/admin/blogs/586731/e:/scrollbar.png"></embed></object> 只需要修改其中的count 变量,就可以调整整个菜单中元素的数量。

 

只要大家修改一下,就可以封装成一个滚动条ScroolBar的控件,以后使用的话,无非就是往这个屏幕里添加控件而已,很简单。

 

大家多提宝贵意见啊!

 

看了要回帖啊@@@@@@@

 

 

 

 

public class TestCanvas extends Canvas implements Runnable{
 
 private boolean isColorChange = false,isRun = true,isVibrate = false;
 private int dragBox_Width = 17,dragBox_Height ;
 private int dragBox_X,dragBox_Y;
 private int dragLine_Width = 9,dragLine_Height;
 public int ScreenWidth,ScreenHeight;
 private Thread th = null;
 private int onDragColor = 0x40e0d0,defaultDragColor = 0x696969;
 private int curKey;
 private int vibrateTime = 20;
 private int vendor,offset = 0,bufImage_Y;
 private Image bufImage = null;
 private Graphics bufGraphics = null;
 int count = 64;
 
 TestCanvas(){
  setFullScreenMode(true);
  ScreenWidth = this.getWidth();
  ScreenHeight = this.getHeight();
  bufImage = Image.createImage(ScreenWidth - dragBox_Width - 5 - (dragBox_Width - dragLine_Width)/2,count*30);
  bufGraphics = bufImage.getGraphics();
  
  bufImage_Y = 0;
  dragLine_Height = ScreenHeight - 40;
  double f = (bufImage.getHeight() /dragLine_Height);
  dragBox_Height = (int)(dragLine_Height/f);
  dragBox_X = ScreenWidth - dragBox_Width - 5 - (dragBox_Width - dragLine_Width)/2;
  dragBox_Y = (ScreenHeight - dragLine_Height)/2;
  start();
 }
 
 public void paint(Graphics g){
  g.setColor(0);
  g.fillRect(0, 0, ScreenWidth, ScreenHeight);
  g.setColor(0xc0c0c0);
  g.fillRoundRect(ScreenWidth - dragBox_Width - 5,
    (ScreenHeight - dragLine_Height)/2, dragLine_Width, dragLine_Height, 5, 5);
  g.setColor(isColorChange?onDragColor:defaultDragColor);
  g.fillRoundRect(dragBox_X, dragBox_Y, dragBox_Width, dragBox_Height, 9, 9);
  bufGraphics.setColor(0);
  bufGraphics.fillRect(0,0,bufImage.getWidth(), bufImage.getHeight());
  bufGraphics.setColor(0xffffff);
  for(int i=0;i<count;i++){
   bufGraphics.drawString((i+1)+"", 20, i*30, 0);
  }
  g.drawImage(bufImage, 0, offset, 0);
 }
 
 public void run(){
  while(isRun){
   try{
    repaint();
    serviceRepaints();
    sleep(100L);
   }catch(Exception e){
    
   }
  }
 }
 
 public void start(){
  if(th == null){
   th = new Thread(this);
  }
  th.start();
 }
 
 public static void sleep(long time){
  try{
   Thread.sleep(time);
  }catch(Exception e){
   
  }
 }
 
 public void keyPressed(int key){
  curKey = key;
  switch(curKey){
  case -7:
   MidletTest.instance.exitApp();
   break;
  }
 }
 
 public void keyReleased(int key){
  curKey = 999;
 }
 
// public void pointerPressed(int x, int y) {
//  isColorChange = true;
//  if(isVibrate == false){
//   MidletTest.instance.vibrate(vibrateTime);
//  }  
//  isVibrate = true;
//  vendor = dragBox_Y;
//  dragBox_Y  = y - dragBox_Height/2; 
//  dragBox_Y = (dragBox_Y - (ScreenHeight - dragLine_Height) / 2) <= 0 ? (ScreenHeight - dragLine_Height) / 2 - 1
//    : dragBox_Y >= ScreenHeight - (ScreenHeight - dragLine_Height)
//      / 2 - dragBox_Height ? ScreenHeight
//      - (ScreenHeight - dragLine_Height) / 2 - dragBox_Height
//      : y - dragBox_Height/2;
//  int i = (dragBox_Y - vendor)*(640/200);
//  System.out.println("屏幕需要走的:"+i);
//  if(i>0){
//   offset -= i;
//  }else{
//   offset += i;
//  }
// }

 public void pointerReleased(int x, int y) {
  isColorChange = false; 
  isVibrate = false;
 }

 public void pointerDragged(int x, int y) {
  isColorChange = true;
  if(isVibrate == false){
//   MidletTest.instance.vibrate(vibrateTime);
  }  
  isVibrate = true;
  vendor = dragBox_Y;
  dragBox_Y  = y - dragBox_Height/2; 
  dragBox_Y = (dragBox_Y - (ScreenHeight - dragLine_Height) / 2) <= 0 ? (ScreenHeight - dragLine_Height) / 2 - 1
    : dragBox_Y >= ScreenHeight - (ScreenHeight - dragLine_Height)
      / 2 - dragBox_Height ? ScreenHeight
      - (ScreenHeight - dragLine_Height) / 2 - dragBox_Height
      : y - dragBox_Height/2;
      bufImage.getHeight();
  float f1 = (bufImage.getHeight() - ScreenHeight);
  float f2 = ScreenHeight - 40 - dragBox_Height;
  float f = (f1/f2);
  float i = ((dragBox_Y - vendor)*f);
  if(y<((ScreenHeight - dragLine_Height)/2+(dragBox_Height/2))){
   offset = 0;
  }
  else
   if((y>=((ScreenHeight - dragLine_Height)/2+dragBox_Height/2))&&(y<=(ScreenHeight -(ScreenHeight - dragLine_Height)/2-dragBox_Height/2) )){
   offset -= i;
  }
  else if((y>(ScreenHeight -(ScreenHeight - dragLine_Height)/2-dragBox_Height/2))){
   int w = 0;
   w = -((count*30)-ScreenHeight);
   offset = w;
  }
  
 }

}

  • 大小: 2.2 KB
0
0
分享到:
评论

相关推荐

    J2ME自由滚动的小球

    在本案例中,我们关注的是"J2ME自由滚动的小球",这是一个使用J2ME的基本概念来创建一个动态场景,其中一个小球可以滚动。下面我们将深入探讨涉及的知识点。 1. **J2ME Canvas**: J2ME中的Canvas是用户界面的基础...

    J2ME 实现mp3 歌词滚动效果源码

    在移动设备上实现多媒体功能是Java ME(J2ME)平台的一个重要应用领域,特别是对于音乐播放,歌词滚动效果能够极大地提升用户体验。本项目提供的源码着重展示了如何在J2ME环境中实现MP3歌曲的歌词同步滚动显示。下面...

    J2ME 实现的 UrlEncode编码

    J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码 J2ME 实现的 UrlEncode编码

    J2ME实现画图程序

    在这个J2ME实现的画图程序中,我们主要关注的是如何在移动设备上利用Java Micro Edition(J2ME)框架创建一个简单的画图应用。J2ME是Java平台的一个子集,专门用于嵌入式设备,如手机和PDA。在这个程序中,核心功能...

    j2me最新滚动菜单(带缓冲效果)

    本主题聚焦于"j2me最新滚动菜单(带缓冲效果)",这涉及到在J2ME环境中创建动态、流畅的用户界面元素,尤其是菜单的滚动机制。 滚动菜单是移动应用中常见的一种交互设计,用户可以通过上下滑动来浏览菜单项。在这个...

    j2me滚动字幕程序

    本文将深入探讨J2ME中实现滚动字幕的技术细节,以及如何通过编程技巧优化用户体验。 首先,我们需要理解J2ME的基本架构。J2ME是Java的一种轻量级实现,用于嵌入式设备,如手机和智能手表。它由配置(Configuration...

    j2me实现手机QQ源代码

    **J2ME实现手机QQ源代码详解** J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于开发移动设备和嵌入式设备的应用程序。在这个项目中,我们探讨的是如何使用J2ME技术来实现手机上的QQ应用程序。手机QQ...

    j2me实现mvc的框架源码

    标题"j2me实现mvc的框架源码"指出,这是一个基于Java 2 Micro Edition (J2ME)平台实现Model-View-Controller (MVC)设计模式的框架源代码。MVC是一种广泛应用的软件设计模式,尤其在开发用户界面时,它将业务逻辑...

    J2ME实现超级玛丽源码

    《J2ME实现超级玛丽源码解析》 在IT领域,游戏开发一直是吸引众多开发者的重要方向,而经典游戏“超级玛丽”更是许多程序员热衷于复刻的对象。本篇文章将详细解析利用Java Micro Edition(J2ME)实现的超级玛丽源...

    用J2ME实现简单电子邮件发送功能

    用J2ME实现简单电子邮件发送功能 用J2ME实现简单电子邮件发送功能

    J2ME实现坦克大战工程包

    《J2ME实现坦克大战工程包详解》 Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式设备和移动设备,如手机、智能手表等。在移动游戏领域,J2ME因其跨平台特性和相对较低的资源需求而被广泛采用。...

    j2me实现视频播放

    "j2me实现视频播放"这一主题涉及到利用J2ME技术实现在这些设备上播放视频的功能。下面将详细讨论实现这个功能所需的关键知识点。 1. **J2ME基础知识**: - J2ME由KVM(Java虚拟机)和几个配置及 profiles 组成,如...

    j2me 实现抛物线的两种方法

    本文将深入探讨两种在J2ME中实现抛物线的方法。 首先,我们要了解抛物线的基本原理。抛物线是物体在重力作用下自由落体运动轨迹的一种理想化模型,其轨迹是由初速度、发射角度以及重力加速度决定的。在二维空间中,...

    j2me 实现拼图 一共三个类

    在本文中,我们将深入探讨如何使用Java 2 Micro Edition (J2ME) 实现一个拼图游戏。这个项目由三个核心类组成,旨在为移动设备提供一个简单的拼图游戏体验。J2ME 是一种轻量级的Java平台,主要用于开发在嵌入式设备...

    J2ME实现俄罗斯方块

    本文将探讨如何使用Java Micro Edition (J2ME) 平台来实现这一经典游戏,主要关注特殊炸弹砖块的实现、游戏难度的选择以及游戏初始阶段的砖块随机生成机制。 首先,我们要理解J2ME的基础。J2ME是一种Java平台,主要...

    用J2ME实现播放一段视频

    在Java ME(J2ME)平台上开发移动应用时,实现视频播放功能可能是一个挑战,因为它的资源和性能限制相比桌面或现代移动平台更为有限。不过,通过合理的编程和利用特定库,这一目标是可以达成的。以下是你需要知道的...

    J2ME实现范例

    在本“J2ME实现范例”中,我们将深入探讨J2ME的基础知识及其在实际应用中的运用,帮助你在后续的开发工作中更加得心应手。 1. **J2ME架构**: J2ME包含配置(Configurations)和框架(Profiles),如MIDP(Mobile ...

    j2me实现3D效果

    当我们谈论“j2me实现3D效果”时,这意味着我们要在这些小型设备上创建具有三维视觉效果的游戏或应用。3D编程对于任何平台来说都是一项复杂的技术,但在资源受限的J2ME环境中,这更是一个挑战。 首先,要理解J2ME中...

    j2me 实现打电话功能

    标题“j2me 实现打电话功能”表明我们将探讨如何利用J2ME技术来实现手机的基本通话功能。描述中提到这个功能已经在真机上经过测试,这意味着我们拥有的是一个实际可行的解决方案。 J2ME由两部分组成:KJava API和...

    j2me实现LRC歌词解析

    j2me实现的LRC歌词解析.可以解析标准LRC歌词,方便大家实现歌词同步播放

Global site tag (gtag.js) - Google Analytics