![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Benutzer Registriert seit: 01.02.2005
Beiträge: 64
|
Ich habe hier grade ein kleines Problem: Im Startbildschirm soll neben verschiedenen Einstellungen auch das Logo und eine Versionsnummeranzeige dargestellt werden. Die Logoanzeige ist einfach ein JPanel mit geänderter "paintComponent", der im Constructor der Pfad zur Datei, sowie der _Versionstext_ übergeben wird. Wenn ich den Code unter Eclipse ausführe, dann zeigt er alles perfekt an - erzeuge ich daraus allerdings eine .jar, dann bricht das Programm mit einer FileNotFoundEception ab. Die Bilddatei ist im entsprechenden Verzeichnis der .jar allerdings vorhanden. Findet einer von euch den Fehler? Ich weiß nicht, woran es liegt... Bin aber ehrlich gesagt auch unerfahren mit Bildern - ich nutze die GTGE und habe da eine Image-Engine, die das Laden von Bildern übernimmt... JPanel zu Logo-Anzeige Code: private class Logo extends JPanel{
String Path;
String Ver;
BufferedImage LogoImage;
boolean enableDrawing=false;
public Logo(String Path, String Ver)
{
this.Path=Path;
this.Ver=Ver;
try {
LogoImage= ImageIO.read(new File(Path));
enableDrawing=true;
}
catch (IOException e) {e.printStackTrace();}
this.repaint();
}
public void paintComponent(Graphics g)
{
if(enableDrawing)
{
super.paintComponent(g);
g.drawImage(LogoImage,0,0,this);
g.setColor(Color.WHITE);
FontMetrics fm = g.getFontMetrics();
int x=(getWidth()-fm.stringWidth(Ver))/2;
int y=(getHeight()-5-fm.getLeading());
g.drawString(Ver,x,y);
}
}
Code: //...hier steht Code
Logoanzeige = new Logo("res/Logo.png","Pong V1.0", this);
Logoanzeige.setBounds(0,0,140,235);
this.getContentPane().add(Logoanzeige);
//Fenster anzeigen
this.setVisible(true);
//...und hier steht auch noch Code
__________________
|
| | |
| | Nach oben #2 |
| Sesselkleber Registriert seit: 17.01.2005
Beiträge: 575
|
Um Daten aus einem .jar zu holen musst du auf das Archiv zugreifen. Das funktioniert nicht mit einem normalen Datei-Zugriff, sondern da musst du ein Programm haben welches .jar-Archive auslesen kann. Gott sei Dank kann das der Classloader von Java java Code:
Und im Settings-Dialog muss jetzt ein / vor den Pfad, denn es ist jetzt das root-verzeichnis deines Projekts: java Code:
Übrigens solltest du dir angewöhnen Klassennamen großzuschreiben, jedoch deren Instanznamen klein. Das kann sonst sehr verwirrend sein. Beispiel: Code: JPanel jpanel = new JPanel(); Geändert von sparrow (13.03.2006 um 23:49 Uhr). |
| | |
| | Nach oben #3 |
| Benutzer Registriert seit: 01.02.2005
Beiträge: 64
|
Ok, danke! Jetzt funktioniert's! Und, ja, das mit den Klassennamen / Instanzennamen mach ich in der Regel... habe nur den Code auf die schnelle für's Forum umformatiert und dabei halt mal nen "Tippfehler" gemacht... Ich tipp halt gerne mal schneller, als ich denken kann! *g*
__________________
|
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Zugriff auf Konfiguration im verschachtelten Array | Ben | PHP-Programmierung | 5 | 02.02.2007 12:47 |
| [PHP] FTP-Funktionen in PHP nutzen | MrNiceGuy | Tutorials | 0 | 24.05.2006 14:18 |
| dynamischer Zugriff auf statische Eigenschaft einer Klasse | Ben | PHP-Programmierung | 10 | 15.11.2005 15:53 |
| Dateien auf server schreiben von applet aus | mr.no | Allgemeine Java-Programmierung | 23 | 21.02.2005 21:57 |
| Zugriff auf Dateien Im Netz | CyberHoney | Desktop-Applikationen und Grafik | 7 | 22.09.2004 16:42 |