私のプログラムは単純なゲームで、単語を推測し、同じ文字がいくつあるかを教えてもらうことで、ランダムな 5 文字の単語を見つけようとします (Jotto のスピンオフ)。以前の推測と結果が JScrollPane に表示されます。それらを列に並べようとしています。推測数が 2 桁になると、すべてが 1 文字シフトします。
等幅フォントと String.format() を使用して、列間に適切な数のスペースを埋めようとしていますが、スペースを他の文字よりも小さくしているようです。コマンド ラインに出力すると正常に動作し、フィールド幅は実際には 10 文字ではなく 17 文字になり、画像には多くの文字が表示されます。
scroll.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12));
....
guessList.add(0, String.format("%-17s" + result, numGuesses + ":" ));
ここで、guessList は JScrollPane にある JList です。それが問題を引き起こしているとは思いませんが、それはその一部です。
JTable への切り替えを検討していますが、これでうまくいくと思います。うまくいかない場合は、その理由を知りたいです。