Blackberry下实现文字滚动效果

Blackberry上实现文字滚动效果
如果文字太长 又不想换行的话 可以用文字滚动效果。
下面是代码:
LabelField testLabel = new LabelField(
			"I swear to god up in the sky I will be your shelter when you cry Cause you are my everything.",
			Field.FOCUSABLE) {
		int currentChar = 0;
		String currentText = null;
		Font ourFont;
		private Timer _scrollTimer;
		private TimerTask _scrollTimerTask;

		protected void paint(Graphics graphics) {
			currentText = this.getText();
			if (currentChar < currentText.length()) {
				currentText = currentText.substring(currentChar);
			}
			graphics.drawText(currentText, 0, 0, DrawStyle.ELLIPSIS, Display
					.getWidth());
		}

		protected void layout(int width, int height)  {
			ourFont = this.getFont();
			setExtent(Display.getWidth(), ourFont.getHeight());
		}

		protected void onDisplay() {
			startScroll();
		}

		protected void onUnfocus() {
			startScroll();
		}

		private void startScroll() {
			// Start scrolling
			final String fullText = this.getText();
			if (_scrollTimer == null) {
				_scrollTimer = new Timer();
				_scrollTimerTask = new TimerTask() {
					public void run() {
						currentChar = currentChar + 4;
						if (currentChar > fullText.length()) {
							currentChar = 0;
						}
						invalidate();
					}
				};
				_scrollTimer.scheduleAtFixedRate(_scrollTimerTask, 500, 500);
			}
		}

		protected void onFocus(int direction) {
			if (_scrollTimer != null) {
				_scrollTimerTask.cancel();
				_scrollTimer.cancel();
				_scrollTimer = null;
				_scrollTimerTask = null;
			}
		}

		protected boolean navigationMovement(int dx, int dy, int status,
				int time) {
			currentText = this.getText();
			int oldCurrentChar = currentChar;
			if (Math.abs(dx) > Math.abs(dy)) {
				// horizontal scroll
				if (dx > 0) {
					currentChar = Math.min(currentText.length() - 1,
							currentChar + 1);
				} else if (dx < 0) {
					currentChar = Math.max(0, currentChar - 1);
				}
				if (oldCurrentChar != currentChar) {
					this.invalidate();
				}
				return true;
			} else {
				return super.navigationMovement(dx, dy, status, time);
			}
		}
	};


Demo工程也上传吧
1 楼 女巫の微笑 2010-03-04  
谢谢  真是帮忙了Blackberry下实现文字滚动效果
2 楼 doll 2010-03-07  
女巫の微笑 写道
谢谢  真是帮忙了Blackberry下实现文字滚动效果

能帮你我很高兴 不用客气
3 楼 michael_wang 2010-10-11  
留个脚印Blackberry下实现文字滚动效果 Blackberry下实现文字滚动效果