Hallo,
ich hab versucht, in einem JEditorPane hinzubekommen, daß ich in der Dokumentation meiner Applikation surfen kann. Das haut aber nicht hin. Ich kann das Ding zwar darstellen, doch das Surfen klappt nicht. Der Quelltext dazu ist schon recht lang. Hier ist er, vielleicht kann mir hier jemand weiterhelfen:...
<pre>
class HTML_Dialog extends JFrame implements HyperlinkListener {
public HTML_Dialog(String pfad) {
JEditorPane editorPane = createEditorPane(pfad);
editorPane.setEditable(false);
getContentPane().add(editorPane);
// Fenster in Bildschirmmitte positionieren
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation( (d.width/2 - getSize().width/2), (d.height/2- getSize().height/2) );
setBounds(10, 10, d.width-20, d.height-40);
}
private JEditorPane createEditorPane(String pfad) {
getContentPane().setEditable(false);
JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
String s = null;
try {
s = "file:"
+ System.getProperty("user.dir")
+ System.getProperty("file.separator")
+ pfad;
URL helpURL = new URL(s);
displayURL(helpURL, editorPane);
} catch (Exception e) {
System.out.println("Couldn't create help URL: " + s);
}
return editorPane;
}
private void displayURL(URL url, JEditorPane editorPane) {
editorPane.setEditable(false);
try {
editorPane.setPage(url);
} catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + url);
}
}
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
pane.setEditable(false);
if (e instanceof HTMLFrameHyperlinkEvent) {
HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (HTMLDocument)pane.getDocument();
doc.processHTMLFrameHyperlinkEvent(evt);
} else {
try {
pane.setPage(e.getURL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
}
</pre>
Die Methode hyperlinkUpdate hab ich aus dem API zum JEditorPane, doch die bewirkt auch nichts.
Ich wäre extrem denkbar, wenn mir jemand weiterhelfen könnte.<br>
Grüße,
Andreas<br>
ich hab versucht, in einem JEditorPane hinzubekommen, daß ich in der Dokumentation meiner Applikation surfen kann. Das haut aber nicht hin. Ich kann das Ding zwar darstellen, doch das Surfen klappt nicht. Der Quelltext dazu ist schon recht lang. Hier ist er, vielleicht kann mir hier jemand weiterhelfen:...
<pre>
class HTML_Dialog extends JFrame implements HyperlinkListener {
public HTML_Dialog(String pfad) {
JEditorPane editorPane = createEditorPane(pfad);
editorPane.setEditable(false);
getContentPane().add(editorPane);
// Fenster in Bildschirmmitte positionieren
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation( (d.width/2 - getSize().width/2), (d.height/2- getSize().height/2) );
setBounds(10, 10, d.width-20, d.height-40);
}
private JEditorPane createEditorPane(String pfad) {
getContentPane().setEditable(false);
JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
String s = null;
try {
s = "file:"
+ System.getProperty("user.dir")
+ System.getProperty("file.separator")
+ pfad;
URL helpURL = new URL(s);
displayURL(helpURL, editorPane);
} catch (Exception e) {
System.out.println("Couldn't create help URL: " + s);
}
return editorPane;
}
private void displayURL(URL url, JEditorPane editorPane) {
editorPane.setEditable(false);
try {
editorPane.setPage(url);
} catch (IOException e) {
System.err.println("Attempted to read a bad URL: " + url);
}
}
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
JEditorPane pane = (JEditorPane) e.getSource();
pane.setEditable(false);
if (e instanceof HTMLFrameHyperlinkEvent) {
HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (HTMLDocument)pane.getDocument();
doc.processHTMLFrameHyperlinkEvent(evt);
} else {
try {
pane.setPage(e.getURL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
}
</pre>
Die Methode hyperlinkUpdate hab ich aus dem API zum JEditorPane, doch die bewirkt auch nichts.
Ich wäre extrem denkbar, wenn mir jemand weiterhelfen könnte.<br>
Grüße,
Andreas<br>
Comment