3小时之后,没有运气丝毫String.format()...我转向你。无论如何,我有一个JList,我填充新条目这里是代码:
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) {}
});
}
无论如何,当我使用我的应用程序时,因为我将新元素添加到列表中它们的长度不同,所以我得到这样的输出:
正如您所看到的那样,我想要输出>无论xxxxxx字符串长度如何,电容器都要在同一列中对齐。无论如何,如果有帮助,xxxx字符串的最大长度为47个字符。
答案 0 :(得分:2)
试试这个:
struct.addElement(String.format("> %47s Capacitor: %s CPU: %s", module, module_cap, module_cpu));
答案 1 :(得分:1)
试试这个:
String part1 = String.format("%47s", "xxxxxxxxxxxxxxxxxxxx");
String line1 = part1 + " Capacitor: 555 Cpu: 10";
String part2 = String.format("%47s", "xxxxxxxxxx");
String line2 = part2 + " Capacitor: 555 Cpu: 10";
System.out.println(line1);
System.out.println(line2);
无论“xxx”部分的长度如何,它们总是有47个长度的字符,并且它们将在左侧填充白色空格。所有“Capacitor ...”部件将在同一列中对齐。