📄 stringex.java
字号:
package org.qui.util;
import java.util.Vector;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
public class StringEx {
public static Vector lineCast(String text,int width,Font font){
Vector line=new Vector();
int lineWidth=0,charsSum=text.length(),from=0,to=0;
for(int i=0;i<charsSum;i++){
lineWidth=lineWidth+font.charWidth(text.charAt(i));
if(lineWidth>width){
to=i-1;
line.addElement(text.substring(from,to));
from=to;
lineWidth=font.charWidth(text.charAt(i));
}
}
line.addElement(text.substring(from));
return line;
}
public static Vector tokenCast(String text,int width,Font font){
Vector line=new Vector();
int lineWidth=0,charsSum=text.length(),from=0,to=0,lastSpaceIndex=0;
for(int i=0;i<charsSum;i++){
lineWidth=lineWidth+font.charWidth(text.charAt(i));
if(text.charAt(i)==' '){
lastSpaceIndex=i;
}
if(lineWidth>width){
if(lastSpaceIndex>to){
to=lastSpaceIndex;
i=lastSpaceIndex+1;
lastSpaceIndex=0;
}else{
to=i-1;
}
for(int w=from;w<to;w++){
if(text.charAt(w)=='\n'){
line.addElement(text.substring(from,w));
from=w;
}
}
line.addElement(text.substring(from,to));
from=to;
if(i<charsSum)
lineWidth=font.charWidth(text.charAt(i));
}
}
for(int w=from;w<charsSum;w++){
if(text.charAt(w)=='\n'){
line.addElement(text.substring(from,to));
from=w;
}
}
line.addElement(text.substring(from));
return line;
}
public static void drawVerticalString(Graphics g, String str, int x, int y) {
int len = str.length();
char ch;
Font font = g.getFont();
int width = font.charWidth('(');
int height = font.getHeight();
int offset = width / 2;
int color = ~g.getColor();// ~取反
Image bracket = Image.createImage(width, height);
Graphics graphics = bracket.getGraphics();
graphics.setColor(color);
graphics.fillRect(0, 0, width, height);
graphics.setColor(g.getColor());
graphics.drawChar('(', 0, 0, 20);
graphics = null;
int[] rgb = new int[width * height];
bracket.getRGB(rgb, 0, width, 0, 0, width, height);
bracket = null;
int size = width * height;
for (int i = 0; i < size; i++) {
if (rgb[i] == color) {
rgb[i] = 0xffffffff;
}
}
bracket = Image.createRGBImage(rgb, width, height, false);
for (int i = 0; i < len; i++) {
ch = str.charAt(i);
if (ch == '(') {
g.drawRegion(bracket, 0, 0, width, height, Sprite.TRANS_ROT90,
x - offset, y, 20);
y += width;
} else if (ch == ')') {
g.drawRegion(bracket, 0, 0, width, height, Sprite.TRANS_ROT270,
x - offset, y, 20);
y += width;
} else {
g.drawChar(ch, x, y, 20);
y += font.getHeight();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -