Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi, ich will einen ImageIcon schreiben, den ich für alle JFrames die in meinem Spiel vorkommen verwenden.
Hier ist die Klasse:
Java:
import java.awt.Image;
import javax.swing.ImageIcon;
public class RayIco extends ImageIcon
{
public Image getRImage()
{
Image i;
i = new ImageIcon("F:/Rayman/Icon.jpg").getImage();
return i;
}
}
und so sollte sie verwendet werden:
Java:
JFrame f = new JFrame();
f.setIconImage(new RayIcon().getRImage());
Wenn ich das bei einem herkömmlichen JFrame machen, kommt aber immer wieder das Java Kaffe Tassen Symbol.
Kann mir einer helfen, und mir sagen was ich falsch mache?
In Ausblick auf eine eventuelle Festanstellung und weitere Karriere (irgendwann einmal) als Softwareentwickler sollte man sich schon an die Code Conventions halten (die sind auch teils noch von Sprache zu Sprache unterschiedlich und teils auch noch in Firmen gesetzt) und dann ist es niemals falsch sich von Anfang an an solche zu halten. Sollte ein Tipp sein, dann been nicht *schulter zuck* *Bier weiter trinkt und grinst*
1.) Du wirst hier solange in jedem einzelnen Thread auf die Code convention hingewiesen, bis du dich dran hälst. Ganz einfach.
2.) Das die class RayIcon von ImageIcon erbt, ist sinlos. Lass das weg.
3.) Du lädst bei jedem aufruf von getRImage das Bild neu. das kostet unnötig Performance. Lad das bild entweder einmal in einem statischen initializer oder per lazy initialization (ich hoffe mal du weisst was das ist, wenn net => GIDF)
4.) Mach die Methode getRImage statisch, dann brauchst du auch net jedesmal eine unnötige Instanz von der Klasse RayIcon erstellen
€dit:
Achso wegen dem eigentlichen Problem:
Machs so wie du es bei jeden anderem Problem auch machen (solltest):
Guck per Debugger oder mit einigen System.out.println ob das Image überhaupt geladen wird oder ob das Bild "null" ist, usw...
Ich kann mir vorstellen, dass diese Aussage gegenüber diesem speziellen Threadersteller an der einen oder anderen Stelle Belustigung oder ernste Besorgnis hervorruft....
Irgendwan ist auch mal genug gelästert über Developer_X. Wenn ihr erst 13 Jahre alt wärt, würdet ihr wahrscheinlich auch nicht besser sein. Leider nimmt das Niveau in letzter Zeit auch in allen anderen Threads ab, was aber nicht die Schuld von Developer_X ist.
@Developer_X
Ich weiß nicht ob du es bereits machst oder nicht, aber setzt bitte wirklich die Sachen um die die anderen immer wieder schreiben (Handbuch lesen, mit kleineren Sachen anfangen und nicht sofort ein 3D Spiel programmieren wollen usw...)