String高手进 有什么办法 可以把一段 字符串 按字符一个一个先后循序打印(有间隔时间)到屏幕上并且判断是否到达屏幕边界 如果到达则 字符接着从第一个位置开始打印。。似乎有点难度 以前看类似代码 但不是我想要的这种效果 平台是J2ME J2SE的一些类可能的需要自己写。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 平台是J2ME 手机PDA一般没那么多功能吧。。 首先是把字符串强制类型转化为字符保存在一个数组当中 然后划定一块矩形区域 判断到达边界 我看过的代码是这样做的 但不是很完美 写了一个命令行下运行的,供参考:public class PrintString extends Thread { private String str; private int screenWidth; private String backspaces, spaces; public PrintString(String s, int sw) { str = s; screenWidth = sw; char[] c = new char[screenWidth]; java.util.Arrays.fill(c, '\b'); backspaces = new String(c); java.util.Arrays.fill(c, ' '); spaces = new String(c); } public void run() { for (int i = 0, j = 0; i < str.length(); j = (++i) % screenWidth) { if (i > 0 && j == 0) { System.out.print(backspaces); System.out.print(spaces); System.out.print(backspaces); } System.out.print(str.charAt(i)); try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("thread interrupted."); } } } public static void main(String[] args) { new PrintString("Hello, World! Hello, World!", 10).start(); }} 验证了一下代码 谢谢!!效果还不错不过我用的J2ME的平台java.util.Arrays 这套类库没有啊 非常感谢Dan1980 看了你的代码受到启发 自己写了一段代码 public class StringCanvas extends Canvas { char[] a; String s; public StringCanvas() { new test("12345678",7).start(); } protected void paint(Graphics g) { g.setColor(0); for(int i=0;i<a.length;i++) { g.drawChar(a[i],0+i*Font.getDefaultFont().charWidth(a[0]),100,20); } } public class test extends Thread { public test(String src,int screenwidth) { s=src; a=new char[screenwidth]; } public void run() { while(true) { try {for(int i=0;i<a.length;i++) { a[i]=s.charAt(i); Thread.sleep(2000); repaint(); } } catch (Exception e) {} } } }} 恶补了 2小时String 终于把问题搞定了谢谢个位的帮忙 public class StringCanvas extends Canvas implements Runnable{ char[] a; char b; int curCharIndex; final static String s="就独立涡轮机地垃圾卡哦离开机地勒克司机打击哦案例酱豆腐33333333334444444444"; int curX; Font font=Font.getDefaultFont(); int count; public StringCanvas() { a=new char[s.length()]; new Thread(this).start(); } protected void paint(Graphics g) { g.setColor(0); g.fillRect(0,0,180,177); g.setColor(255,255,255); for(int i=0;i<a.length;i++) { g.drawChar(a[i],curX+i*font.charWidth(a[0]),100,20); } } public void run() { while(curCharIndex<s.length()) { try { for(int i=0;i<s.length();i++) { s.getChars(curCharIndex,curCharIndex+1,a,count); curCharIndex++; count++; //System.out.println(font.charsWidth(a,0,count)); if(font.charsWidth(a,0,count)>90) { count=0; a=null; a=new char[s.length()-curCharIndex]; } Thread.sleep(500); repaint(); } } catch (Exception e) {} break; } }} 非静态内部类为什么不能定义静态变量 1.5转1.4的泛型问题 怎样屏蔽最大,最小化窗口按钮啊!!!! java学习路线 @散分+终于长了一个星星,庆祝一下 [100分][急][在线等]我的“计算器”,请问怎么把它做成exe文件? 高手们给个建议!来者有分! 【Swing】为JFrame添加背景图片的简单方法是什么? 帮帮小妹吧!我快被炒了! 哪位高手可提供用java对字符串加密解密的算法,急!!! 有难度的问题(也许):点击jpanel里的区域,如何判断点击到了什么组件? 寻求jfree chart1.0.2软件以相关实例
private String str;
private int screenWidth;
private String backspaces, spaces; public PrintString(String s, int sw) {
str = s;
screenWidth = sw;
char[] c = new char[screenWidth]; java.util.Arrays.fill(c, '\b');
backspaces = new String(c);
java.util.Arrays.fill(c, ' ');
spaces = new String(c);
} public void run() {
for (int i = 0, j = 0; i < str.length(); j = (++i) % screenWidth) {
if (i > 0 && j == 0) {
System.out.print(backspaces);
System.out.print(spaces);
System.out.print(backspaces);
}
System.out.print(str.charAt(i));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
System.out.println("thread interrupted.");
}
}
} public static void main(String[] args) {
new PrintString("Hello, World! Hello, World!", 10).start();
}
}
不过我用的J2ME的平台
java.util.Arrays 这套类库没有啊
public class StringCanvas extends Canvas
{
char[] a;
String s;
public StringCanvas()
{
new test("12345678",7).start();
} protected void paint(Graphics g)
{
g.setColor(0);
for(int i=0;i<a.length;i++)
{
g.drawChar(a[i],0+i*Font.getDefaultFont().charWidth(a[0]),100,20);
}
}
public class test extends Thread
{ public test(String src,int screenwidth)
{
s=src;
a=new char[screenwidth];
}
public void run()
{
while(true)
{
try {for(int i=0;i<a.length;i++)
{
a[i]=s.charAt(i);
Thread.sleep(2000);
repaint();
}
} catch (Exception e) {}
}
} }}
public class StringCanvas extends Canvas implements Runnable
{
char[] a;
char b;
int curCharIndex;
final static String s="就独立涡轮机地垃圾卡哦离开机地勒克司机打击哦案例酱豆腐33333333334444444444";
int curX;
Font font=Font.getDefaultFont();
int count;
public StringCanvas()
{
a=new char[s.length()];
new Thread(this).start();
} protected void paint(Graphics g)
{
g.setColor(0);
g.fillRect(0,0,180,177);
g.setColor(255,255,255);
for(int i=0;i<a.length;i++)
{
g.drawChar(a[i],curX+i*font.charWidth(a[0]),100,20);
}
}
public void run() {
while(curCharIndex<s.length())
{
try {
for(int i=0;i<s.length();i++)
{
s.getChars(curCharIndex,curCharIndex+1,a,count);
curCharIndex++;
count++;
//System.out.println(font.charsWidth(a,0,count));
if(font.charsWidth(a,0,count)>90)
{
count=0;
a=null;
a=new char[s.length()-curCharIndex];
}
Thread.sleep(500);
repaint();
}
} catch (Exception e) {}
break;
}
}
}