[Java] 75 Swing 15 JEditorPaneハイパーリンク・クリック後の動作

EditorPaneのハイパーリンク・クリック後の動作についてコードを追記しました。

リンク先のHTMLファイルは、JavaのクラスあるいはPythonの外部プログラムで作成します。

外部プログラムを使う場合、HTMLファイルのパスを渡すすべがないので、空のHTMLファイルを作成した後、Pythonのglobメソッドとsorted関数でファイルを見つけ出し加工します。

    // PAGE_CENTER設定
		editorPane = new JEditorPane();
		contentPane.add(editorPane, BorderLayout.CENTER);
		editorPane.setContentType("text/html");
		editorPane.setEditable(false);
		editorPane.setBackground(new Color(0xf0f8ff));
		editorPane.addHyperlinkListener(new HyperlinkListener() {
            @Override
            public void hyperlinkUpdate(HyperlinkEvent e) {
		        if (HyperlinkEvent.EventType.ACTIVATED.equals(e.getEventType())) {
		        	String race_html_pre = e.getURL().toString();
		        	System.out.println("race_html_pre " + race_html_pre);
              
                  // HTMLファイルパスの"file:"を削除
		        	String race_html = race_html_pre.substring(5);
		        	StringBuilder HTMLcode = new StringBuilder();
		        	HTMLcode.append("<table>" + "</table>");
		        	
		        	// 空HTMLファイルの作成
		            try{
		                File file = new File(race_html);
		                FileWriter filewriter = new FileWriter(file);
		                filewriter.write(HTMLcode.toString());
		                filewriter.close();}
		            catch(IOException e0){
		                System.out.println(e0);
		            }

               // ここでリンク先のHTMLファイルを作成する

		            Desktop desktop = Desktop.getDesktop();
		            try {
		                desktop.browse(e.getURL().toURI());
		            } catch (IOException e1) {
		                e1.printStackTrace();
		            } catch (URISyntaxException e1) {
		                e1.printStackTrace();
		            }
		        }
		    }
        });