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();
}
}
}
});