- /**
- * 将一个长字符串根据指定宽度和字体分割成字符串数组
- *
- * @param longString
- * 用于分割的较长字符串
- * @param font
- * 用于测量字符串宽度的字体
- * @param width
- * 显示设备上单行字符串的宽度
- * @return 分割成的字符串数组
- */
- private String[] splitLongStringIntoStringArray(String longString,
- Font font, int width) {
- if (font.stringWidth(longString) <= width) {
- return new String[] {longString};
- } else {
- int stringLength = longString.length();
- char[] chars = longString.toCharArray();
- Vector v = new Vector();
- int offset = 0, length = 1;
- while (offset + length < stringLength) {
- if (font.charsWidth(chars, offset, length) < width) {
- length++;
- } else {
- v.addElement(longString.substring(offset, offset + length));
- offset = offset + length;
- length = 1;
- }
- }
- if (offset < stringLength) {
- v.addElement(longString.substring(offset));
- }
- String[] strings = new String[v.size()];
- v.copyInto(strings);
- return strings;
- }
- }