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. xxxxxxxxxxxxxxxxxxxx コンデンサ: 555 CPU: 10
  2. xxxxxxxxxx コンデンサ: 555 CPU: 10
  3. xxxxxxxxxxxxxxxxxxxxxxxxxxx コンデンサ: 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 に答える