Supportnet / Forum / Anwendungen(Java,C++...)
JOptionPane mit bild
Frage
Tach auch,
ich hab n kleines proggy geschrieben, bei dem ich jetzt n image in n JOptionPane einfügen will.
wenn ich so mache:
Code:
[code]
ImageIcon button;
button = new ImageIcon(getClass().getResource("bild.gif"));
JOptionPane.showMessageDialog(null, "Sehr gut,\ndas war richtig!", bild);
[/code]
kommt n fehler.
wie gehts besser?
Antwort 1 von mr_x_hacker
Den Konstruktor für den Dialog gibt es nicht...
sollte laufen...
Also noch den Fenstertitel und welche Buttons da sein sollen, angeben.
Ciao Sascha
ImageIcon button;
button = new ImageIcon(getClass().getResource("bild.gif"));
JOptionPane.showMessageDialog(null, "Sehr gut, \ndas war richtig!",
"Titel", JOptionPane.OK_CANCEL_OPTION, button);
sollte laufen...
Also noch den Fenstertitel und welche Buttons da sein sollen, angeben.
Ciao Sascha
Antwort 2 von mr_x_hacker
Ups, wie komm ich auf Konstruktor...?
Bitte das Wort ignorieren :-)
Gemeint ist die Signatur der Methode...
Ciao Sascha
Bitte das Wort ignorieren :-)
Gemeint ist die Signatur der Methode...
Ciao Sascha
Antwort 3 von semi
Du kannst die Icons über den UIManager ersetzen. Es gibt zu jeder Komponente eine UI-Klasse, die sich des UIManagers bedient, um bestimmte UIDefaults zu speichern.
Bei OptionPane ist es die Klasse BasicOptionPaneUI. Es gibt dort die Methode
protected Icon getIconForType(int messageType)
Du hast nun drei Möglichkeiten
1) Eigene UI-Klasse zu implementieren (damit versperrst Du Dir die Option, verschiedene PLAF's zu verwenden)
2) Eigenes Dialog mit OptionPane anzuzeigen.
3) Im UIManager die entsprechenden Icons ersetzen.
Hier die dritte Variante
Gruß,
Michael
Bei OptionPane ist es die Klasse BasicOptionPaneUI. Es gibt dort die Methode
protected Icon getIconForType(int messageType)
Du hast nun drei Möglichkeiten
1) Eigene UI-Klasse zu implementieren (damit versperrst Du Dir die Option, verschiedene PLAF's zu verwenden)
2) Eigenes Dialog mit OptionPane anzuzeigen.
3) Im UIManager die entsprechenden Icons ersetzen.
Hier die dritte Variante
UIManager.put(
"OptionPane.informationIcon",
new ImageIcon(getClass().getResource("bild.gif"))
);
//Siehe auch OptionPane.warningIcon, OptionPane.questionIcon
JOptionPane.showMessageDialog(
....., JOptionPane.INFORMATION_MESSAGE
);
Gruß,
Michael

