に右にテキストをJLabel
カットをJLabelのテキストをオフにカットオフ私が取り組んでいる小さなバックアップアプリケーション)。あなたが最後にJLabel
の上に表示されているように、 "キャンセル"ボタンが右に切り取られています。この動作は、テキストのより関連性の高い部分が切り捨てられているので、明らかに望ましくない。は、3個のドットでデフォルトで左
私は、得られたラベルは、この画像(右欄、悪い解像度のためのSRY)でのように見えるしたいと思います:
これまでのところ、私は配置を変更しようとしましたJLabel.RIGHT
にラベル内のテキストの、ComponentOrientation.RIGHT_TO_LEFT
にコンポーネントの向きを変え、無駄にhorizontalTextPosition
、すべてを設定します。
import javax.swing.*;
import java.awt.*;
public class Backup
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(()->{
JLabel label = new JLabel("Some test text 1 2 3 4 5 6 7 8 9 10 abcdefghjiklmnopqrstuvwxyz", JLabel.RIGHT);
label.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
label.setHorizontalTextPosition(JLabel.RIGHT);
JFrame frame = new JFrame();
frame.add(label);
frame.pack();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);
});
}
}
<html>
<body>
<p style="width:300px;overflow-x:hidden;direction:rtl">
kladsjhglakjsjdghlekfalksjdvhlkjdsnkljhsdlkvjhasdkjhfslkdjhcksdjhvflkasjvhlkajdlkajvsdhvlkjsadhaaaaaaaaaaaaa
</p>
</body>
</html>
これは、それが私のブラウザでになっていた方法でだけで動作しますが、スイングがこれをサポートするために、スタイル・プロパティの十分なセットをサポートしていないようです:私はHTMLを使用して、同様に試してみた何動作。
正確にこれを行うという要件を満たす独自の実装をコーディングするのはあまり難しいことではありません。それにもかかわらず、私はこれを達成するための「スイング・ウェイ」があるかどうか疑問に思っていました。
'私はこのimage'に似たラベルを見たいのですが - それは私が提案する何が起こっていたかでした。 「これを達成するための「スイング・ウェイ」があるかどうか疑問に思っていました」 - これは私が知っているわけではないので、カスタムレンダラーがJTable用に作られた理由です。そうでなければ、レンダラーとしてラベルを使用するときにスウィングの方法を使用していたでしょう:) – camickr
@camickrまあ、私はちょうどいくつかのプロパティまたはそのようなものを設定して自分のレンダラーをコーディングする方法があることを期待したい。しかし、私はすでに、JLabelのドキュメントとコードの両方を調べた後、それを疑っていました。とにかく、ありがとう。 – Paul