唐突ですが(自分へのメモなので)JAVAアプリで、HTMLを表示して、リンク先をブラウザで開く方法について、書きます。ただし、HTMLは、javascriptとか書かれると、対応できません。
■サンプル
こんなかんじです。
http://www.e-gov.go.jp/doc/scheme.htmlを開いています。
リンク先をクリックすると、ブラウザを開いて、表示します。
また、スクロールもできます。
終了ボタンで終わります。
■ソース
2つの部分に分かれます。1つは、画面起動部分(Testクラス)で、こんなかんじ。
/** * 起動プログラム */ public class Test { public static void main(String[] args) { Gamen1 g = new Gamen1(); g.initDisp(); } } |
もうひとつが、実際の画面部分(Gamen1クラス)です。
import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; /** * 表示画面 */ public class Gamen1 { JFrame ff; Container f; JButton b1; JEditorPane t1; /* * ブラウザのパス */ String Path = "C:¥¥Program Files¥¥Internet Explorer¥¥iexplore.exe"; /* * 表示するURL */ String ShowURL="http://www.e-gov.go.jp/doc/scheme.html"; /* * 表示 */ public void initDisp() { // フレームを作成する ff =new JFrame("テスト"); f = ff.getContentPane(); ff.setSize(540,460); f.setLayout(null); // アクションを作成する Gamen1_HandleEvent ge = new Gamen1_HandleEvent(); // ボタン作成 b1 = new JButton("終了"); b1.setLocation(10,10); b1.setSize(90,30); b1.addActionListener(ge); f.add(b1); // テキスト try { t1 = new JEditorPane(ShowURL); // アンカーに飛ぶようにする t1.setEditable(false); t1.addHyperlinkListener(ge); // スクロールをつける JScrollPane sc1 = new JScrollPane(t1); sc1.setLocation(10,50); sc1.setSize(520,400); f.add(sc1); } catch(Exception e) { e.printStackTrace(); } // 表示 ff.setVisible(true); } /* * イベントリスナー */ private class Gamen1_HandleEvent implements ActionListener,HyperlinkListener { /* * ボタンが押されたときの処理 */ public void actionPerformed(ActionEvent e) { Object o = e.getSource(); if ( o.equals(b1)== true) { // 終了 ff.dispose(); } } /* * リンクがクリックされたときの処理 */ public void hyperlinkUpdate(HyperlinkEvent e) { if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { try { //ブラウザを起動し、必要な URL を渡す Runtime.getRuntime().exec(new String[ ] { Path,e.getURL().toString()}); } catch (Exception ex) { ex.printStackTrace(); } } } } } |
(上記< > ¥は本当は半角)
詳しい内容については、長くなりそうなので、別の機会に書きます。