Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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

Geschrieben
Original geschrieben von Scratch

gibt es in Java eigentlich auch ein struct wie in c ???

Keine Ahnung, kann kein C. :D

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

Geschrieben

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 ....

Geschrieben

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;

  }

}

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...