- ベストアンサー
Labelでは1行しか書けない
アプレットに2行以上書く方法にはどんなものがありますか? SWTとかを使わずにピュアなソースで書きたいと思っています。 行ごとにLabelを使う以外にいい方法はないですか? TextAreaを読取専用にしてラベルのように見せることはできますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>スクロールバーを消すにはどうしたらいいんですか? TextAreaのコンストラクタで指定可能です。 //10行、5列のスクロールバーなしTextArea new TextArea("あいうえお\nかきくけこ", 10, 5, TextArea.SCROLLBARS_NONE); >それから、resize()はアプレットの領域を変更できるんじゃないんですか? たぶんだめです。 APPLETタグで指定した値だけが有効かと思います。 後から変更はできないと思います。
その他の回答 (1)
- sasadora
- ベストアンサー率68% (59/86)
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>での改行は使わない方がよいと書いてあります。
補足
ありがとうございます。 たぶん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")); } }
お礼
ありがとうございます。 TextArea.SCROLLBARS_NONEでかなり近づきました。