1

->アスキーアートで矢印を作ろうとしたのですが、JLabelが連携しません。代わりに、次のように表示されます。

悪い ->

_> か何かのように見えます。どうすれば修正できますか?

SSCCE:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

public class Test {
    public static void main(String[] args) {
        JFrame j = new JFrame("TEST");
        j.add(new JLabel(" -> "));
        j.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        j.pack();
        j.setSize(j.getWidth() * 3, j.getHeight() * 3);
        j.setLocationRelativeTo(null);
        j.setVisible(true);
    }
}
4

3 に答える 3

3

-に対する の相対的な配置は>、フォントによって異なります。これを行う別の方法を見つけるか、配置が希望どおりのフォントを使用する必要があります。

等幅フォントは快適に横に配置される傾向がありますが、保証はありません。たとえば、現在 SO では、-> と同じくらいずれているように見えます (私には)。->->

Russell Zahniserによるコメントでのより良い回答(そして、彼が回答として投稿した場合は、これを削除します)は、(多くの) Unicode 矢印の 1 つを使用すること\u2192です。ここの unicode.org サイト に便利なリストがあります。

于 2014-05-14T16:55:10.790 に答える
0

の違い

->

->

フォントです。これが ASCII アートの場合は、JLabel 経由でモノスペース フォント (Consolas、Courier New、Monaco...) を使用する必要がありますsetFont。何かのようなもの:

JFrame j = new JFrame("TEST");
JLabel label = new JLabel(" -> ");
label.setFont(new Font("Courier New", Font.PLAIN, 12)));
j.add(label);
...
于 2014-05-14T16:55:29.523 に答える