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

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

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

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

2回答

2295閲覧

JLabelの文字の表示がおかしいんです。

otftrough

総合スコア476

Java

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

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

0クリップ

投稿2016/02/23 15:18

編集2016/02/24 02:13

ひとつのJLabelに文字列と画像を入れて、文字列だけを透明にしようとしましたが、なぜか画像の横に黒いドットが表示されるんです。

java

1String value = "ファイルパス.png"; 2 3character[c] = new JLabel(value, new ImageIcon(this.getClass().getResource(value)), JLabel.CENTER); 4 5character[c].setForeground(new Color(0,0,0,0));

当然、文字列なしで画像だけ入れるとドットは表示されません。
setForeground()のColorの値を変えても、ドットは黒いままです。
というか、文字列はちゃんと表示されずに画像の右側に"."だけがひとつ表示されるってどういうことですか?
ちなみに、文字列の表示位置をCENTER以外にするとドットは消えました。

追記:

ドットの色が黒いままだったのは、character[c].setForeground(new Color(0,0,0,0));を書く場所のミスでした。
使っている画像は特別なものではなく、どこにでもあるpngやjpgです。いろんな画像を使いましたが、どれも、画像の右にドットが現れます。JLabel.CENTER以外(JLabel.LEFTなど)にすると消えます。
jarファイルアップロードしておきました。
TalkWindow.java 581行目private void setCharacter(String type, String value, int c)の中です。
TalkWindow.jar
変数名とかわかりにくいのはご了承ください...

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

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

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

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

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

argius

2016/02/23 23:52

画像の情報について追記をお願いします。可能であれば、画像そのものをはっていただいてもかまいません。そうでなければ、どんな画像なのか、サイズや色について書いてください。
guest

回答2

0

ファイルのアップありがとうございます。
回答ではありませんが、情報の追加依頼では書ききれないので回答欄に書かせていただきます。

現象自体は確認できましたが、Javaファイルがついていませんでした。
それとはっていただいたコードだけでは再現が確認できませんでした。
もしかしたら、透過ウィンドウとか他のライブラリーの影響があるのかもしれません。

元の状態を維持するために、プロジェクトをコピーするなりして、コピーしたプロジェクトで機能をひとつずつ削除していき、現象が再現する状態を作るか、
完全に新しいコードを書くかして、
条件を絞り込まないと難しそうです。

投稿2016/02/24 07:21

argius

総合スコア9388

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

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

otftrough

2016/02/24 10:23

すみません、javaファイル入れ忘れました。 再度アップロードしておきました。
argius

2016/02/24 10:43

ありがとうございます。 ざっと見た感じでは、他のライブラリーとかではなさそうですね。 ただ量が多いのでちょっと時間がかかりますし、分かるかどうかも自信ないです。 見当もついていませんし、心当たりもありませんので。 ご自身で回答に書いたことをされた方が早いかも知れません。
guest

0

Java をやっていたのは昔でもう覚えていないので「swing JLabel」で使い方をぐぐりました。
外していたらごめんなさい。

サイズ指定とかしても変わらないでしょうか?

Java

1label1.setPreferredSize(new Dimension(180,120));

あと Border とか?

Java

1LineBorder border = new LineBorder(Color.RED, 2, true); 2label1.setBorder(border);

投稿2016/02/24 01:10

編集2016/02/24 01:12
sk_3122

総合スコア1126

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

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

otftrough

2016/02/24 02:17

サイズ指定は、setBounds()を使っています。 ゲームでキャラクターを表示させるためのラベルなのでborderは使いません。
sk_3122

2016/02/24 02:48 編集

いえ、ためしに Border を指定した場合にどう見えるか、という確認です。 要は 「ラベルの領域が適切に確保されているのに表示されていない」 のか 「ラベル自体が縮んでしまっていて見えていない」 のかを切り分ける為の質問でした。 背景色とかでも良いですけど。
otftrough

2016/02/24 10:25

そういうことですか。 ありがとうございます、確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問