• ベストアンサー

Labelでは1行しか書けない

アプレットに2行以上書く方法にはどんなものがありますか? SWTとかを使わずにピュアなソースで書きたいと思っています。 行ごとにLabelを使う以外にいい方法はないですか? TextAreaを読取専用にしてラベルのように見せることはできますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.2

>スクロールバーを消すにはどうしたらいいんですか? TextAreaのコンストラクタで指定可能です。 //10行、5列のスクロールバーなしTextArea new TextArea("あいうえお\nかきくけこ", 10, 5, TextArea.SCROLLBARS_NONE); >それから、resize()はアプレットの領域を変更できるんじゃないんですか? たぶんだめです。 APPLETタグで指定した値だけが有効かと思います。 後から変更はできないと思います。

rasuck
質問者

お礼

ありがとうございます。 TextArea.SCROLLBARS_NONEでかなり近づきました。

その他の回答 (1)

  • sasadora
  • ベストアンサー率68% (59/86)
回答No.1

Label, TextAreaということは、AWTですか? AWTだとすると、 >TextAreaを読取専用にしてラベルのように見せることはできますか? 試してみれば分かると思いますが、 おっしゃるようにTextAreaを読取専用にするのが楽だと思います。 もしくは、Labelを継承して、自分で複数行表示するLabelを作る という手もあると思います。これはちょっと面倒です。 swingを使っているのでしたら、もうひとつ簡単な方法があります。 下記のURLで示される「How to Use Labels」に、 「Using HTML on a Label」という章があります。 http://java.sun.com/docs/books/tutorial/uiswing/components/label.html JLabelの中でHTMLを記述する方法です。これを使えば改行以外にも 色々な表現がHTMLで記述できます。 JLabel label = new JLabel(); label.setText("<html>abce<p>fgh</html>"); こんな感じで記述すると、 abcde fgh と表示されました。 ※上記サイトの説明によると、<br>での改行は使わない方がよいと書いてあります。

参考URL:
http://java.sun.com/docs/books/tutorial/uiswing/components/label.html
rasuck
質問者

補足

ありがとうございます。 たぶんAWTです。 swingは分かりません。 TextAreaを読取専用にしようと思いました。 文字列が選択できるのはいいとして、 まず、背景色を変えようとしたのに、それたさできませんでした。 背景色の変更と、スクロールバーを消すにはどうしたらいいんですか? それから、resize()はアプレットの領域を変更できるんじゃないんですか? resize(500, 500);が無効でした。 起動のタグが <applet code=test width=5 height=5></applet> だったとしても、 <applet code=test width=500 height=500></applet> と同じような効果になると思ったんだけど、そのような効果が あるJAVAの関数はないですか? public class test extends java.applet.Applet { String str = "aaa\r\nbbb"; TextArea ta; Button btn; public void init() { resize(500, 500); ta = new TextArea(str, 4, 20); ta.setText(str); ta.setBackground(new Color(200, 200, 200)); add(ta); add(btn = new Button("B")); } }

関連するQ&A