質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1709閲覧

JLabelでsetTextをすると、中央寄せが強制左寄せになってしまう

SmartBuzz

総合スコア81

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/08/04 02:06

編集2017/08/04 12:23

ラベル生成し、setAligmentで文字を中央寄せに設定しているにもかかわらず、setTextで画面を更新するとなぜか左寄せになってしまう現象が発生しています。

中央寄せを維持するには、何か別の設定が必要なのでしょうか?
現状、PositionedTextでポジションを設定する方法も試してみましたが、ダメでした。
是非ご教授頂きたいです。

画面が立ち上がる際に、以下の処理をしてラベルを生成し、テキストを表示するようにしました。

java

1// グローバル定義 2JPanel panel = new JPanel(); 3JLabel label = new JLabel(); 4 5private void createScreen(){ 6 panel.setPreferredSize(new Dimension(709, 350)); 7 8 label.setText("testtest"); 9 label.setAlignment(AbstractTextWidget.HORIZONTAL_ALIGN_CENTER | AbstractTextWidget.VERTICAL_ALIGN_TOP); 10 label.setBounds(250,100,150,45); 11 12 panel.add(label); 13 14 ImageButton button = new ImageButton(this); 15 button.addActionListener(new ActionListener() { 16 public void actionPerformed(ActionEvent arg0){ 17 changeScreen(); 18 } 19}

その後、ボタンを押したタイミングでsetTextをして表示している文字を変更する処理を書きました。

java

1private void changeScreen(){ 2 label.setText("aaaaaaaaaa"); 3 label.setAligment(AbstractTextWidget.HORIZONTAL_ALIGN_CENTER | AbstractTextWidget.VERTICAL_ALIGN_TOP); 4}

testtest⇒aaaaaaaaaa
へと文字が変わる想定です。

labelに関しては実体をグローバルで持って、違った実体に対してsetTextしないようにグローバル定義しています。

以上、ご教授の程よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

お疲れさまです。
左寄せや右寄せのセット方法の
label.setAlignment(VAbstractTextWidget.HORIZONTAL_ALIGN_CENTER | VAbstractTextWidget.VERTICAL_ALIGN_TOP);
が違うような気がします。
はずしていたら、ごめんなさい。

センタリング設定 jLabel.setText("testtest"); jLabel.setHorizontalAlignment(JLabel.CENTER); jLabel.setBounds(250,100,150,45); ボタンを押したときは jLabel.setText("aaaaaaaaaa"); 上記だけで良いと思います。 以下は右寄せです。(おまけ) jLabel.setHorizontalAlignment(JLabel.RIGHT);

投稿2017/08/04 05:08

senior_golfer

総合スコア264

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問