Javaプログラミング/Javaプログラミング関連情報

JEditorPaneでWebページを表示しよう!(4ページ目)

今回は、HTMLのドキュメントを表示できるJEditorPaneの使い方について説明しましょう。

執筆者:掌田 津耶乃

リンクをクリックしてジャンプする


この状態では、表示されているリンクをクリックしたりしてもまったく何も起こりません。JEditorPaneは、表示を行うだけで、リンクなどを自働的に移動してくれるわけではないのです。リンクを活かすためには、リンクを操作する際のイベント処理を用意する必要があります。

package jp.allabout;

import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.net.URL;

import javax.swing.*;
import javax.swing.event.*;

public class SampleApp extends JFrame
    implements ActionListener,HyperlinkListener {
  JTextField url_field;
  JEditorPane doc_pane;
  
  public SampleApp(){
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel p1 = new JPanel();
    p1.setLayout(new GridLayout(1,2));
    url_field = new JTextField();
    p1.add(url_field);
    JButton btn = new JButton("OK");
    btn.addActionListener(this);
    p1.add(btn);
    this.add(p1,BorderLayout.NORTH);
    doc_pane = new JEditorPane();
    doc_pane.setEditable(false);
    doc_pane.addHyperlinkListener(this);
    JScrollPane scroll = new JScrollPane(doc_pane,
        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
        JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    this.add(scroll,BorderLayout.CENTER);
    this.setSize(new Dimension(400,400));
    System.out.println(doc_pane);
  }

  @Override
  public void actionPerformed(ActionEvent e) {
    try {
      doc_pane.setPage(url_field.getText());
    } catch (IOException e1) {
      e1.printStackTrace();
    }
  }

  @Override
  public void hyperlinkUpdate(HyperlinkEvent e) {
    if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED){
      try {
        URL url = e.getURL();
        url_field.setText(url.toString());
        doc_pane.setPage(url);
      } catch (IOException e1) {
        e1.printStackTrace();
      }
    }
  }
  
  public static void main(String[] args){
    new SampleApp().setVisible(true);
  }
}

これで、入力フィールドにURLを書いたボタンを押し、サイトにアクセスしてみてください。今度は、リンクのところにマウスポインタを移動するとカーソルが指の形に変わり、クリックするとリンク先に移動するようになります。


  • 前のページへ
  • 1
  • 3
  • 4
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます