JEditorPaneとJScrollPaneの基本
GoogleのサイトをJEditorPaneで表示させてみた。 |
ここではJEditorPaneを作成する際、Webページのアドレスを渡すことで特定のページを表示させています。では、コンストラクタの処理をざっと見てみましょう。ここではJTextFieldやJButtonなどを作成した後、JEditorPaneのインスタンスを作成しています。
try {
doc_pane = new JEditorPane("http://google.com/");
} catch (IOException e) {
e.printStackTrace();
doc_pane = new JEditorPane();
}
いきなり、インスタンス作成がtryで囲われていて驚いた人もいるでしょう。ここでは、引数にアドレスを渡していますね。こうすることで、そのアドレスにアクセスし、そのページをダウンロードして表示した状態でJEditorPaneを作成するのです。ただし、きちんと指定のアドレスのデータがダウンロードできるとは限りません。問題があってアクセスに失敗するとIOExceptionが発生するため、このように例外処理が必要となります。
catch節では、例外をprintStackTraceした後、引数なしでnew JEditorPaneを実行していますね。表示するアドレスの指定がなければ例外は発生しませんから、当然、例外処理も不要です。
続いて、JScrollPaneを作成します。JEditorPaneは、例によってこれ自体ではスクロールバーなどは表示されません。スクロール表示するには、スクロール専用のJScrollPaneが必要です。
JScrollPane scroll = new JScrollPane(doc_pane,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
ここでは、第1引数に組み込むコンポーネントとしてJEditorPaneを指定しています。そして第2、第3引数には、縦横のスクロールバー表示のルールを示すJScrollPaneのクラスフィールドを渡します。これには、以下のようなものがあります。
・垂直スクロールバー用
VERTICAL_SCROLLBAR_AS_NEEDED:必要に応じて表示される。
VERTICAL_SCROLLBAR_NEVER:常に表示されない。
VERTICAL_SCROLLBAR_ALWAYS:常に表示される。
・水平スクロールバー用
HORIZONTAL_SCROLLBAR_AS_NEEDED:必要に応じて表示される。
HORIZONTAL_SCROLLBAR_NEVER:常に表示されない。
HORIZONTAL_SCROLLBAR_ALWAYS:常に表示される。
ここでは、垂直スクロールバーを常に表示し、水平スクロールバーは必要に応じて表示する、というように設定されていたわけですね。JEditorPaneは、Webページを表示するものですから、たいていは縦方向のスクロールバーを使ってスクロール表示しないといけないでしょう。そこでこのように設定をしておきました。