Standard Icons wo findet man diese?

BlubBlub

Bekanntes Mitglied
Hi,

ich versuche grad einen kleinen Editor zu programmieren
und wollte die Untermenues wie "Datei Speichern" etc mit Icons
versehen. Für "Datei speichern" würd ich gern ein Diskettensymbol nehmen
und für "Datei drucken" ein Druckersymbol.
Weiß jemand wo es diese Icons gibt und ob sie vielleicht auch in Java irgendwie schon eingebunden sind oder so?
 
Habe mir jetzt die "Java look and feel Graphics Repository " runtergeladen und entpackt.
Dort war eine jar Datei drinne.
Wo muss ich diese Datei denn jetzt genau hinlegen, könnt ihr mir da ne genaue step by step anleitung geben.
Und wie füge ich dann anschließend ein Icon in mein Programm ein?
 
also ich hab mir jetzt ein paar inetseiten durchgelesen zu dem thema.
versteh ich das jetzt richtig, dass wenn ich eine JAR Datei in dasselbe Verzeichnis lege
in dem sich auch mein Programm befindet ich nichts weiter tun muss?
 
Nicht ganz. Du musst in der Manifest-Datei deiner Jar-Datei folgendes einfügen, sofern das dein Editor bzw. deine IDE nicht machen:
Code:
Class-Path: FremdeJarDatei.jar

Eigentlich macht das jede ordentliche IDE, wenn man das in den Projkteinstellungen vorsieht.

Die von dir angedeutete Vorgehensweise hat den Vorteil, dass die fremden Jar-Dateien austauschbar bleiben.
 
uff ich muss ehrlich sagen ich fühl schon ein wenig überfordert was die jar datei einfügen betrifft und dann den entsprechenden icon in das programm einbinden.

hab aber zwei seiten gefunden die man sich so als anfänger durchlesen kann für einen kleinen überblick, nur so falls jemand auch die schwierigkeiten hat wie ich:
Kurzinformationen zur Programmiersprache Java < Homepage < AG Softwaretechnik Wiki
Klassenpfad ? Wikipedia

also ich wollte jetzt einfach mal versuchen nur die jar datei in das selbe verzeichnis zu legen (mit der hoffnung, dass der rest ganz automatisch geht, wenn nicht probier ich das natürlich anders mit euren genannten vorschlägen nur überfordern die mich momentan noch ein wenig)

nur jetzt steh ich vor noch einem weiteren problem. also L-ectron-X hat zwar gepostet wie man sie einbindet, aber ich frage mich grad woher weiß ich welchen namen welches icon hat?
genauer gesagt woher weiß ich was in getClass().getResource("/icons/open.jpg") stehen muss. also dort wo jetzt "/icon/open.jpg". wie erfahr ich welchen string das druckersymbol beispielsweise hat oder die speicherdiskete?

ich will dieser jar datei verwenden Java look and feel Graphics Repository
 
BlubBlub,

wenn du die .jar richtig eingebunden hast sollte dir dieses Beispiel weiterhelfen können:

Java:
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Tester extends JFrame
{

	public Tester()
	{
		setTitle("www.itblogging.de");

		JMenu menu = new JMenu("Testmenü");
		JMenuBar bar = new JMenuBar();
		JMenuItem item = new JMenuItem("Hallo Icon", new ImageIcon(Tester.class.getResource("/toolbarButtonGraphics/development/Bean24.gif")));

		menu.add(item);
		bar.add(menu);

		setJMenuBar(bar);

		setSize(400, 300);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}

	public static void main(String[] args)
	{
		new Tester();
	}

}

EDIT: Die Namen der Icons solltest du natürlich kennen.
Wenn du sie per Java ansprechen willst könntest du dir entsprechende wrapper Klassen bauen.
 
Zuletzt bearbeitet von einem Moderator:
aber ich frage mich grad woher weiß ich welchen namen welches icon hat?
genauer gesagt woher weiß ich was in getClass().getResource("/icons/open.jpg") stehen muss. also dort wo jetzt "/icon/open.jpg". wie erfahr ich welchen string das druckersymbol beispielsweise hat oder die speicherdiskete?
Dazu kannst du die Jar-Datei mit einem Packprogramm öffnen und dir die Dateien ansehen.
Du gibst dann in deinem Programm nur den relativen Pfad zu deiner gewünschten Grafikdatei aus deiner Jar-Datei an.

Könnte in deinem Fall dann also so aussehen:
Java:
saveItem = new JMenuItem("Speichern", new ImageIcon(getClass().getResource("/toolbarButtonGraphics/general/Save24.gif"));
 
Also, ich habs jetzt geschafft die jar Datei zu entpacken um zu sehen welches Icon welche Bezeichnung trägt.
Ich hab jetzt einfach das entsprechende gif Bild rauskopiert und in mein Programm eingefügt das klappt auch alles super.
Nur bin ich grad interessiert daran zu erlernen wie ich das ohne die jar Datei zu entpacken schaffen kann.

Ich hab die jar Datei in das selbe Verzeichnis gelegt indem auch meine Programm ist.
Leider meckert das Programm dann bei der Ausführung und gibt mir eine Null Pointer Exception

Java:
//JMenuItem fileOpen = new JMenuItem("Datei öffnen...", new ImageIcon(getClass().getResource("/toolbarButtonGraphics/general/Open16.gif")));

         JMenuItem fileOpen = new JMenuItem("Datei öffnen...", new ImageIcon(MyEditor.class.getResource("/toolbarButtonGraphics/general/Open16.gif")));

Also werd ich das jetzt mal so versuchen:
L-ectron-X : Nicht ganz. Du musst in der Manifest-Datei deiner Jar-Datei folgendes einfügen, sofern das dein Editor bzw. deine IDE nicht machen:
Class-Path: FremdeJarDatei.jar

Dazu muss ich die JAR Datei erstmal entpacken dann die Manifest-Datei in eine Textdatei umwandeln.
Anschließend Class-Path: jlfgr-1_0.jar hineinschreiben und die Textdatei wieder in den ursprünglichen Dateityp umwandeln. Das krieg ich hin.
Aber wie verpacke ich denn wieder die einzelnen Ordner wieder zu einer JAR Datei das krieg ich nicht hin.
 
Entpacke die JarDatei nicht.

Öffne sie mit winzip, winrar oder sowas.

Edietiere die manifest-Datei.

Dann wird dein ZIP Programm die Datei im Archiv ersetzen.

Hoffe du hast es richtig verstanden und setzt den Classpath in DEINER Jar Datei, so dass DEIN Programm weiß, welche externen Ressourcen noch geladen werden müssen.

Alternativ kann man auch mit java -cp ./externeJar.jar verwenden.
 
Aber wie verpacke ich denn wieder die einzelnen Ordner wieder zu einer JAR Datei das krieg ich nicht hin.
Das Jar-Dateiformat ist Zip-kompatibel. Du kannst es also mit einem beliebigen Packprogramm öffnen/ansehen.
Wie schon von Marcinek angedeutet, brauchst du die Icons nicht entpacken. Du kannst die Manifestdatei direkt im Packprogramm editieren.
 
also mir rar kann ichs öffnen und anschauen, aber nicht editieren.
nagut aber ich hab auch rausgefunden wie ich die jar datei entpacke,
dann die datei in eine textdatei umwandel diese editiere dann wieder zurückwandel
und anschließend wieder in eine jar datei verpacke, das geht mit rar auch.

Hoffe du hast es richtig verstanden und setzt den Classpath in DEINER Jar Datei, so dass DEIN Programm weiß, welche externen Ressourcen noch geladen werden müssen.

In MEINER Jar Datei??? Ich hab doch nur die eine JAR Datei die ich runtergeladen habe mit den Icons.

Alternativ kann man auch mit java -cp ./externeJar.jar verwenden.
Wo muss ich das denn eingeben?
Muss das unter Start => Programme => Zubehör => Eingabeaufforderung
eingegeben werden?
Oder kommt das in die java Datei also in den Sourcecode?

Hab übrigens noch eine alternative gefunden wie man eine JAR Datei einbinden kann nämlich wenn man unter eclipse folgendes macht:
Rechtsklick auf die Projektdatei => Build Path => Add External Archives
wobei das Programm dann nicht mehr Portabel wäre da sich dieser Pfad ja nur auf den Quellrechner bezieht.
 
Zuletzt bearbeitet:
Hab übrigens noch eine alternative gefunden wie man eine JAR Datei einbinden kann nämlich wenn man unter eclipse folgendes macht:
Rechtsklick auf die Projektdatei => Build Path => Add External Archives
wobei das Programm dann nicht mehr Portabel wäre da sich dieser Pfad ja nur auf den Quellrechner bezieht.
Wenn du dein Projekt anschließend als runnable Jar exportierst, dann bietet die Eclipse automatisch an, die referenzierten Bibliotheken mit in dein Jar zu packen, wodurch das exportierte Jar vollkommen portabel ist.
Empfehlen würde ich dir folgendes: Lege in deinem Projekt einen Ordner "lib" an. In diesen Ordner kopierst du alle von dir benötigten Bibliotheken und fügst sie dem Build Path hinzu. Beim Exportieren kannst du sie dann einfach deinem exportierten Jar hinzufügen. Alternativ könntest du auch die Bibliotheken nicht in dein Jar packen lassen und stattdessen neben deinem Jar den lib-Ordner mit ausliefern. Dabei musst du allerdings das Manifest deiner Jar editieren, sodass sie dem Classpath die Bibliotheken im externen lib-Ordner hinzufügt.
 

Neue Themen


Zurück
Oben