- 概要
jtextFieldは1行の文字を記録・表示します。jTextAreaは複数行の記録、表示が可能ですが、段落毎のスタイルの設定はできません。どちらも、文字全体の フォントやサイズは設定可能です・
jEditorPaneでは段落毎のスタイルの設定、htmlの表示やhtmlのリンクタグによるイベント処理にも対応します。
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.htmlより
jTextArea、jEditorPaneはでスクロールを行うには、コンテナ部品である、JScrollPaneに組み込む必要があります。
- スクロール機能の組み込み
JBuilderでjTextAreaの部品にスクロール機能を付加するには、SwingComponentのjScrollPaneを組み込み、その内部に、jTextAreaを作成します。内部で作成されたjTextAreaは自動的に、jScrollPaneの部品サイズに調整されます。また、jScrollPaneの内部に、作成済みのjTextAreaをドラッグして組み込むこともできます。
プログラムでは、この操作により、スクロールパネルへ
getViewport().add(jTextArea1, null)
が実行されます。
jTextField1.setBounds(new Rectangle(63, 44, 244, 23));
jScrollPane1.setBounds(new Rectangle(40, 114, 156, 120));
jScrollPane1.getViewport().add(jTextArea1, null);
- html表示
jLabelクラスでは、htmlのタブ表現を表示できます。また、jEditorPanel では、次のように設定します。
String st="<html><body><h2>hello</h2>H<sub>2</sub>O</body></html>";
jEditorPane1.setEditable(false);
jEditorPane1.setContentType("text/html");
jEditorPane1.setText(st);
あるいは、htmlのファイル(forst.html)を setPage でそのまま表示できます。
try{
jEditorPane1.setPage(getCodeBase()+"first.html");
} catch (Exception err)
{System.out.println("error setpage:"+err.toString());
}
- html リンク イベント
EditorPane()で、タブ表現 <a href=".."> のリンクを行うと、リンク先がクリック可能になります。クリックを行うと、hyperlinkUpdate
が実行されます。 e.getURL().toString() は href のリンク先の文字列を返します。jEditorPane1.setPage(url) で、リンク先のページを表示します。
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() != HyperlinkEvent.EventType.ACTIVATED) return;
String url = e.getURL().toString();
//jEditorPane1.setText(url);
try { jEditorPane1.setPage(url); } catch(Exception err) {}
}
hyperlinkUpdate は インターフェース HyperlinkListener のメソッドで、
class Applet1 extends Applet implements HyperlinkListener
先頭行には、上のような implements が必要です。また、
import javax.swing.event.*;
も必要です。