本來是在swing裡的一個面板中有大量的按扭,用以顯示機器的狀態,異常則顯紅色警示表徵圖,正常則顯綠色,然後由於按扭上的文字是由機器名而來,機器名長短不一,再加上文字前面的表徵圖,使整個面板上的按扭看起來很淩亂,決定調整一下。於是寫了一個把字串格式化為8個位元組長度(不足則補半形空格)的方法,代碼如下 public static final int strLength = 8 ;
public static String FormatButtonText(String targetStr) ... {
int curLength = targetStr.getBytes().length;
if(targetStr!=null && curLength>strLength)
targetStr = SubStringByte(targetStr);
String newString = "";
int cutLength = strLength-targetStr.getBytes().length;
for(int i=0;i<cutLength;i++)
newString +="/b";
return targetStr+newString;
}
public static String SubStringByte(String targetStr) ... {
while(targetStr.getBytes().length>strLength)
targetStr = targetStr.substring(0,targetStr.length()-1);
return targetStr;
}
由於我這裡格式長度是確定的,所以直接定義為final型變數,如果在其它地方使用則可以用參數來傳遞期望的長度...哎,可是結果呢,JButton在Metal風格下空格不起作用,直接忽略了,在windows風格下有作用,鬱悶中……
Metal效果如下
windows風格效果如下
如果看不到圖片效果,可以http://blog.mop.com/cleverfoxloving/2007/03/14/3529726.html另一個部落格上看