Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

表示領域よりも大きな文字列の制御

はじめて、質問させていただきます。

JTextFieldやJLabelに文字列を表示させているのですが、コンポーネントの表示領域より文字列の領域の方が大きい場合に
コンポーネントの大きさは変えずに文字列の文字列の頭、もしくは末尾を表示しないようにしたいのですが
文字列のどの位置基点にして表示させるかを設定するapiはありますでしょうか?

初歩的な質問で申し訳ありませんがよろしくお願いいたします。
また足りない情報があればご指摘いただけると幸いです。

【表示例】
文字列:あいうえお

表示:「あいう..」
または
表示:「..うえお」

5

回答

83365

閲覧

5件の回答

評価

0

これでどう?
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/swing/JTextField.html#setHorizontalAlignment(int)

評価

0

回答ありがとうございます。
こちらのメソッドは試してみたのですが表示領域が文字列よりも大きい場合にのみコンポーネント内の位置を指定できるものでした。
文字列のが大きい場合はこちらのメソッドの使用、不使用に関わらず描画に変更はありませんでした。

評価

0

それらしいメソッドは見あたりませんねえ。
自前でレンダラーを用意して、それを呑ませることができれば、
何とかなるかもしれませんが。

モデルは間違ってないと思うけど、手段の検証はしてません。
ここまでで勘弁してください。

評価

0

"..."を表示したいなら、文字列のピクセル数を計算して、それが幅より大きかったらカットして"..."を追加して描画するようなクラスを、自分で書くしかないんじゃ。

評価

0

そうなのよ。FontMetricsとかLineMetricsとか使って、けっこう面倒なコードを書くので、私は昔、一度で懲りたことあります。今回の話題も、そこまで苦労する意義はなさそう。Swingのデフォルトの振る舞いで十分がまんできますよ。ねっ?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。