1

经过几个小时没有运气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) {}
    });
}

无论如何,当我现在使用我的应用程序时,当我将新元素添加到列表中时,它们的长度并不完全相同,所以我得到如下输出:

  1. xxxxxxxxxxxxxxxxxxxxx 电容器:555 Cpu:10
  2. xxxxxxxxxx 电容器:555 Cpu:10
  3. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 电容:555 Cpu:10

如您所见,这不是很可读我想输出 > Capacitor... 在同一列中对齐,而不管 xxxxxx 字符串长度如何。无论如何,如果有帮助的话,xxxx 字符串的最大长度是 47 个字符。

4

2 回答 2

2

试试这个 :

struct.addElement(String.format("> %47s Capacitor: %s CPU: %s", module, module_cap, module_cpu));
于 2011-12-26T16:08:39.197 回答
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 个字符的长度,并且它们会在左边用空格填充。所有“电容器...”部分将在同一列中对齐。

于 2011-12-26T16:07:38.703 回答