Jar-Datei-Problem

hi,

du brauchst nur die icons mit in die jar zu legen...laden kannst du die dann mit

Code:
	/**
	* Läd eine Resource vom Type IMAGERESOURCE.
	* 
	* @param file, gibt den Dateinamen mit Pfad an.
	* 
	* @return gibt das in der Datei enthaltene Bild zurück.
	* 
	* @throws IOException
	* @throws NullPointerException
	*/
	private Object loadImageResource( String file)throws IOException, NullPointerException
	{
		
		InputStream is = getInputStream( file);
		
		if (is != null)
		{
			
			byte[] buffer = new byte[0];
			byte[] tmpbuf = new byte[1024];
			
			while (true)
			{
		
				int len = is.read(tmpbuf);
				
				if (len <= 0)
				{
				    break;
				}
				
				byte[] newbuf = new byte[buffer.length + len];
				
				System.arraycopy(buffer, 0, newbuf, 0, buffer.length);
				System.arraycopy(tmpbuf, 0, newbuf, buffer.length, len);
				
				buffer = newbuf;
				
			}
		
			is.close();
			
			return Toolkit.getDefaultToolkit().createImage(buffer);
			
		}
		
		throw new IOException();
		
	}
	
	/**
	* Ermittelt einen InputStream für eine Resource.
	* 
	* @param file, gibt den Dateinamen mit Pfad an.
	* 
	* @return gibt den InputStream für die Resource zurück.
	* 
	* @throws IOException
	* @throws NullPointerException
	*/
	private InputStream getInputStream( String file)throws IOException, NullPointerException
	{
		
		InputStream retval = this.getClass().getResourceAsStream( file);
		
		if( null==retval)
		     retval = new FileInputStream( new File( file)) ;
		
		return retval;
	}

hmf
 
hi,

du brauchst nur die icons mit in die jar zu legen...laden kannst du die dann mit

Code:
	/**
	* Läd eine Resource vom Type IMAGERESOURCE.
	* 
	* @param file, gibt den Dateinamen mit Pfad an.
	* 
	* @return gibt das in der Datei enthaltene Bild zurück.
	* 
	* @throws IOException
	* @throws NullPointerException
	*/
	private Object loadImageResource( String file)throws IOException, NullPointerException
	{
		
		InputStream is = getInputStream( file);
		
		if (is != null)
		{
			
			byte[] buffer = new byte[0];
			byte[] tmpbuf = new byte[1024];
			
			while (true)
			{
		
				int len = is.read(tmpbuf);
				
				if (len <= 0)
				{
				    break;
				}
				
				byte[] newbuf = new byte[buffer.length + len];
				
				System.arraycopy(buffer, 0, newbuf, 0, buffer.length);
				System.arraycopy(tmpbuf, 0, newbuf, buffer.length, len);
				
				buffer = newbuf;
				
			}
		
			is.close();
			
			return Toolkit.getDefaultToolkit().createImage(buffer);
			
		}
		
		throw new IOException();
		
	}
	
	/**
	* Ermittelt einen InputStream für eine Resource.
	* 
	* @param file, gibt den Dateinamen mit Pfad an.
	* 
	* @return gibt den InputStream für die Resource zurück.
	* 
	* @throws IOException
	* @throws NullPointerException
	*/
	private InputStream getInputStream( String file)throws IOException, NullPointerException
	{
		
		InputStream retval = this.getClass().getResourceAsStream( file);
		
		if( null==retval)
		     retval = new FileInputStream( new File( file)) ;
		
		return retval;
	}

hmf


Super, Vielen Dank :D

Allerdings hätte ich noch ein Problem, will blos keinen neuen Thread aufmachen.
Ich möchte meine JTextArea alle 20 sek aktualisieren und diese dann überprüfen ob neuer Text vorhanden ist. Mein Problem ist des mit den 20 sek aktualisieren, hast du da vielleicht eine Idee
 
Moin!


Das mit dem absoluten Pfad war ja auch nur als Test gedacht.
Ich würde sowas machen:
Code:
frm_anmeldung.setIconImage(Toolkit.getDefaultToolkit().getImage(System.getProperty("user.dir")+"/symbole/frame_anmeldung.png"));
System.getProperty("user.dir") liefert dir immer das aktuelle Arbeitsverzeichnis. Und da legst du dann dein Symbol Verzeichnis mit den Bildern ab.. Dann kannst du die Software auch ohne Problem verteilen

*grüssle*
MeinerEiner

Super Sache,das ist natürlich noch einfacher mit dem Befehl das Problem zu lösen :D
Aber ich habe wie schon im vorherigen Post noch ein Problem.
Ich will eine JTextArea alle 20 sek aktualisieren und dann noch prüfen, ob neuer Text hinzugekommen ist.
Hast du da vielleicht eine Idee?
 
Erläuter mir das mal ein bisschen genauer.

Ok, und zwar, ich schreibe gerade ein Programm, welches 2 JTextAreas(einlesen + auslesen) enthält. In die Textarea einlesen schreibe ich irgendwas hinein, sagen wir mal "Test", dies wird in einer Textdatei abgespeichert und in der anderen wird dies dann aus der Textdatei ausgelesen und angezeigt. Nun möchte ich aber einen kleinen "Chat" zwischen 2 Usern machen. Im moment läuft dieser schon soweit, nur das ich einen Button über die Textarea auslesen gemacht habe, der wenn man ihn drückt, die Textarea auslesen aktualisiert. Ich möchte aber, das der User nicht immer den Button drückt, sondern die Textarea auslesen automatisch alle 20 sek aktualisiert wird, also der Text aus der Textdatei in die JTextarea auslesen geschrieben wird.
 
Zurück