Scratch Geschrieben 28. Januar 2004 Geschrieben 28. Januar 2004 Hi, Porgrammiere noch nicht lange mit Java und finde den Fehler einfach nicht ... class PCListe { int X,Y; String HOST; PCListe() { X = Y = 0; HOST = null; } public int getX() { return X; } public int getY() { return Y; } public String getHost() { return HOST; } public void setX(int x) { X = x; } public void setY(int y) { Y = y; } public void setHost(String host) { HOST = host; } } public class AreYouAlive extends java.applet.Applet { int rectSize = 10; int MAX_PC = 10; PCListe pc[] = new PCListe[MAX_PC]; public void paint(Graphics screen) { for(int i = 0;i < MAX_PC;i++) { if(pc[i].getX() > 0 && pc[i].getY() > 0) <---- hier ist der Fehler !!!! { screen.drawRect(pc[i].getX(),pc[i].getY(),rectSize,rectSize); } } } } Erst beim Ausführen erscheint folgender Fehler: java.lang.NullPointerException at AreYouAlive.paint(AreYouAlive.java:100) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) das liegt doch an dem Feld aus dem Objekt der Klasse PCListe ??? gibt es in Java eigentlich auch ein struct wie in c ??? Muss ich eigene Datentypen immer mit ner neuen Klasse bauen ??? Übrigens das Feld füllt sich natürlich im Laufe des Programms. Danke !!!! Gruß Scratch Zitieren
Jaraz Geschrieben 28. Januar 2004 Geschrieben 28. Januar 2004 Original geschrieben von Scratch PCListe pc[] = new PCListe[MAX_PC]; Du erzeugst hier zwar ein Array vom Typ PCListe, die einzelnen Positionen im Array sind aber immer noch ungefüllt! pc = new PCListe(); in der Schleife für alle 10 Arraypositionen ausführen, dann klappt es. Gruß Jaraz Zitieren
Scratch Geschrieben 28. Januar 2004 Autor Geschrieben 28. Januar 2004 Jaaaa, super geht einwandfrei !!! wie sieht es mit den anderen Fragen aus ??? Thema struct ??? Danke !!! Zitieren
Jaraz Geschrieben 28. Januar 2004 Geschrieben 28. Januar 2004 Original geschrieben von Scratch gibt es in Java eigentlich auch ein struct wie in c ??? Keine Ahnung, kann kein C. http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&oe=utf-8&threadm=9phnl8%24fr2%2406%241%40news.t-online.com&rnum=1&prev=/groups%3Fq%3Dg:thl1659882176d%26dq%3D%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3Dutf-8%26selm%3D9phnl8%2524fr2%252406%25241%2540news.t-online.com Original geschrieben von Scratch Muss ich eigene Datentypen immer mit ner neuen Klasse bauen ??? Ja, wie sonst? Gruß Jaraz Zitieren
Scratch Geschrieben 28. Januar 2004 Autor Geschrieben 28. Januar 2004 Deshalb frag ich ja in C kann man einfach sagen struct MeinTyp { int hallo; int du; string da; }; MeinTyp denn_hab_ich_selbst_gemacht; drauf zugreifen tut man dann mit: denn_hab_ich_selbst_gemacht.hallo = 5; etc .... Zitieren
Jaraz Geschrieben 28. Januar 2004 Geschrieben 28. Januar 2004 Und, wo ist da der Unterschied zu einem Object? Anstatt struct nimmste einfach class. public class Main { public Main(){ MeinTyp mt = new MeinTyp(); mt.hallo=5; System.out.println(mt.hallo); } public static void main(String[] args) { Main main = new Main(); } class MeinTyp{ int hallo; int du; String da; } } Zitieren
Scratch Geschrieben 28. Januar 2004 Autor Geschrieben 28. Januar 2004 man hat einfach weniger zu schreiben ;-) obwohl ... wenn man alles public lässt ja eigentlich nicht ... Zitieren
kingofbrain Geschrieben 28. Januar 2004 Geschrieben 28. Januar 2004 Servus, Du hast zwar weniger zu schreiben, aber es ist leider nicht mehr objektorientiert. Und so schlimm ist es auch mit gettern und settern nicht. Das machen die meisten IDEs. Und Du kannst mit solchen Datenklassen eine Menge machen: dafür sorgen, dass diese Klassen als Modell für eine Oberfläche genommen werden können (Tree, Table), oder sie serialisieren oder sonst persistent abspeichern. Also ich würde nicht mit struct arbeiten, selbst wenn es das geben würde. Peter Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.