沒有運氣的3小時之後whit String.format()...我轉向你。總之我有填充白衣新條目下面的代碼一個JList:JList中的Java格式化字符串
private void addModule(final JList browse, final JList select){
browse.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
String addable = browse.getSelectedValue().toString();
if(e.getClickCount() == 2 && getSelectedTower() != null && addable.charAt(0) == ' '){
String data[] = new EPTModule_Model().moduleData(addable.trim());
String module = data[0];
String module_cap = data[1];
String module_cpu = data[2];
struct.addElement("> " + module + "Capacitor:" + module_cap + "CPU:" + module_cpu);
select.setModel(struct);
setSelectedModules(1);
} else if (e.getClickCount() == 2 && getSelectedTower() == null){
new EPTEvent_Model().eventNoTowerSelected();
}
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
});
}
總之事情是,當我現在用我的應用程序,因爲我新元素添加到列表中他們並不都是相同的長度,所以我得到輸出是這樣的:
- XXXXXXXXXXXXXXXXXXXX電容器:555 CPU:10
- XXXXXXXXXX電容器:555 CPU:10
- xxxxxxxxxxxxxxxxxxxxxxxxxxx電容器:555 CPU:10
正如你所看到的那樣,我不希望輸出> Capacitor ...在同一列中對齊,而不管xxxxxx字符串的長度。無論如何,如果有幫助,xxxx字符串的最大長度是47個字符。
也許你想要寫一個[自定義渲染(http://docs.oracle.com/javase/tutorial/uiswing/components/list.html#renderer)? – Howard 2011-12-26 15:56:06
或使用等寬字體,或使用表格(因爲它是表格信息)等。 – 2011-12-26 16:05:41
看看MouseAdapter。它可以節省您不得不覆蓋您不想添加代碼的方法。 – MMJZ 2015-03-12 17:32:18