Hallo zusammen,
ich versuche gerade mit dem JEditorPane und einer lokalen HTML-Datei ein About-Fenster und Help-Fenster zu erstellen. Ich finde momentan keinen Zugang zu dieser Datei, die ich als "about.html" in dem Ordner "resources" abgelegt habe. "resources" liegt auf derselben Ebene wie "src" ebenfalls.
Wenn ich hinter "file://" den absoluten Pfad auf meinem Linux-System zur HTML-Datei angebe, dann funktioniert der Code. Mir fehlt die richtige relative Pfadangabe. Die Klasse JAbout.java liegt im Package "com.example.calculator" und dieses wiederum direkt unterhalb von "src".
Grüße
Wambui
Der Stack trace hierzu redet von einem unbekannten Host:
ich versuche gerade mit dem JEditorPane und einer lokalen HTML-Datei ein About-Fenster und Help-Fenster zu erstellen. Ich finde momentan keinen Zugang zu dieser Datei, die ich als "about.html" in dem Ordner "resources" abgelegt habe. "resources" liegt auf derselben Ebene wie "src" ebenfalls.
Wenn ich hinter "file://" den absoluten Pfad auf meinem Linux-System zur HTML-Datei angebe, dann funktioniert der Code. Mir fehlt die richtige relative Pfadangabe. Die Klasse JAbout.java liegt im Package "com.example.calculator" und dieses wiederum direkt unterhalb von "src".
Grüße
Wambui
Code:
package com.example.calculator;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class JAbout extends JEditorPane implements HyperlinkListener {
public JAbout(String url) {
setEditable(false);
addHyperlinkListener(this);
try {
setPage(new URL(url));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
JFrame f = new JFrame("Über uns...");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(600, 400);
f.setIconImage(Toolkit.getDefaultToolkit().getImage(JAbout.class.getResource("/com/example/calculator/gui/resources/images16x16/currency_euro_yellow.png")));
JButton okay = new JButton("Ok");
f.getContentPane().add(new JScrollPane(new JAbout("file://resources/about.html")), BorderLayout.CENTER);
f.getContentPane().add(okay, BorderLayout.SOUTH);
f.setVisible(true);
}
@Override
public void hyperlinkUpdate(HyperlinkEvent event) {
HyperlinkEvent.EventType type = event.getEventType();
if (type == HyperlinkEvent.EventType.ACTIVATED) {
try {
setPage(event.getURL());
} catch (IOException e) {
JOptionPane.showMessageDialog( this,
"Kann dem Link nicht folgen: "
+ event.getURL().toExternalForm(),
"Ladefehler",
JOptionPane.ERROR_MESSAGE );
}
}
}
}
Der Stack trace hierzu redet von einem unbekannten Host:
java.net.UnknownHostException: resources
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at sun.net.ftp.impl.FtpClient.doConnect(FtpClient.java:958)
at sun.net.ftp.impl.FtpClient.tryConnect(FtpClient.java:918)
at sun.net.ftp.impl.FtpClient.connect(FtpClient.java:1013)
at sun.net.ftp.impl.FtpClient.connect(FtpClient.java:999)
at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:294)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:393)
at javax.swing.JEditorPane.getStream(JEditorPane.java:769)
at javax.swing.JEditorPane.setPage(JEditorPane.java:433)
at com.example.calculator.JAbout.<init>(JAbout.java:31)
at com.example.calculator.JAbout.main(JAbout.java:46)