Resourcen mit relativen Pfadangaben laden

Burny91

Mitglied
Hallo Allerseits,

Ich arbeite gerade an einem Helpfenster für meine SudokuGUI. Der Inhalt des Frames ist HTML und deswegen nutze ich auch das JEditorPane, welches HTML kompatibel ist. Mein Problem ist nur das ich absolute Pfadangaben für die HTML-Datei mache. (Das Programm muss ich später abgeben, deswegen werden sich höchstwahrscheinlich nicht die gleichen Verzeichnisstrukturen wiederfinden!!! 😳)

Was ich mir vorstelle ist das in meinem Projektordner (Eclipse) es einen Resourcenordner gibt, welcher die HTML-Datei enthält und ich einfach nur darauf verweise. Jetzt ist nur die Frage: Wie?

Ich habe schon Ansätze gefunden aber funktionieren tuen sie noch nicht:

Java:
File f1 = new File(".\\html\\Sudoku_Rules.html");

Hier der Code:
Java:
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

public class SudokuHelp extends JEditorPane {

	SudokuHelp(String url) {
		setEditable(false);

		try {
			setPage(url);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		JFrame f = new JFrame("Sudoku Help");
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(800, 600);

		f.add(new JScrollPane(new SudokuHelp(
				"file:///E:/Users/Christian/Desktop/Sudoku_Rules.html")));

		f.setVisible(true);

	}
}

Hoffe auf baldige Hilfe,

Mfg Burny91
 
Rechtsklick auf das Dokument, neuen Source-Ordner anlegen, z. B. "res". In diesem Ordner ein neues Package "html" erzeugen und dahinein deine HTML-Datei legen. Anschließend die HTML-Datei mittels Class#getResource() aus dem Classpath laden.
 
Vielen Dank funktioniert alles wunderbar =)

Java:
import java.io.IOException;
import java.net.URL;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;

public class SudokuHelp extends JEditorPane {

	SudokuHelp(String url) {
		setEditable(false);
		URL myhtml = this.getClass().getResource(url);
		myhtml.toString();

		try {
			setPage(myhtml);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		JFrame f = new JFrame("Sudoku Help");
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(800, 600);

		f.add(new JScrollPane(new SudokuHelp("html/Sudoku_Rules.html")));

		f.setVisible(true);

	}
}

Jetzt nervt mich der Kram nicht mehr. Vielen Dank für die schnelle Hilfe :toll:

Mfg Burny91
 

Zurück
Oben