Object = null?

LeaveX

Aktives Mitglied
Hallo,

Hier ma der Code:
Java:
import java.awt.*;

public class ProtokollFenster extends Frame {
	
	ProtokollMosaik pm;
	
	Mosaik mm;
	
	public ProtokollMosaik getProtokollMosaik() 
	{ 
		return pm; 
	} 
	

    public ProtokollFenster(String titel, int width, int raster, Color farbeRueck, Color farbeVor, int x, int y) {
    	
    	super(titel);
    	
    	this.setSize(width, width);
    	
    	pm = new ProtokollMosaik(raster, width, farbeRueck, farbeVor);
    	
		this.add(pm);
		
		mm = new Mosaik();
		
		System.out.println("Mosaik = "+mm.getFarbMosaik());
		
		//pm.getProtokollModel().setMosaikModel(mm.getFarbMosaik().getMosaikModel());
    	
    	this.setLocation(x,y);
    	
    	this.setResizable(false);
    	
    	this.setVisible(true);
    }
}

Java:
import java.applet.Applet;
import java.awt.*;

public class Mosaik extends Applet{

	private Color farbeRueck, farbeVor;
	private int raster;
	private String temp2;

	ProtokollFenster pf;
	
	FarbMosaik fm;
	ProtokollMosaik pm;
	
	public FarbMosaik getFarbMosaik() 
	{ 		
		return fm; 
	}
	
    public void init()
    {
    	resize(250, 280);
    	
    	String temp = getParameter("raster");
    	temp2 = getParameter("protokollfenster");
    	
    	try{
    		raster=Integer.parseInt(temp);
    	} catch(NumberFormatException nfe)
    	{
    		raster=5;
    		System.out.println("Default="+raster+" gesetzt. NumberFormatException: "+nfe.getMessage());
    	}
    }
    
    public void start()
    {
    	farbeRueck = new Color(230, 30, 50);
    	farbeVor = new Color(50, 210, 30);  
    	
    	FarbMosaik fm = new FarbMosaik(raster, getSize().width, farbeRueck, farbeVor);
    	this.add(fm); 
    	
    	if(temp2.compareTo("on") == 0)
    	{
       		Rectangle bounds = this.getBounds();
       		Point p = this.getLocation();
    		
    		pf = new ProtokollFenster("Protokollfenster", getSize().width, raster, farbeRueck, farbeVor, p.x+bounds.width+7, p.y);
    		
    		
    		fm.getMosaikModel().setProtokollModel (pf.getProtokollMosaik().getProtokollModel());
    		
    		System.out.println("ProtokollFenster = "+pf.getProtokollMosaik());
    		
    		//pm.getProtokollModel().setMosaikModel(this.getFarbMosaik().getMosaikModel());
    	}
    }
}

Warum bekomm ich beim Aufruf von
Java:
System.out.println("ProtokollFenster = "+pf.getProtokollMosaik());
ein Objekt zurück und beim Aufruf von
Java:
System.out.println("Mosaik = "+mm.getFarbMosaik());
bekomm ich null zurück warum??

MFG
LeaveX
 

javimka

Top Contributor
null kriegst du, weil du implizit den Default-Konstruktor von Mosaik aufrufst, der nichts auf fm speichert und es dadurch null bleibt.
 

Kr0e

Gesperrter Benutzer
Du hast mm.getFarbMosaik() also das Object fm nicht erstellt. fm wird in der Methode start() erstellt.
start() wird garnciht aufgerufen. Das kann nciht klappen.

Entweder du rufst noch start() auf oder packst start() in den bei dir zur Zeit nicht definierten Konstruktor...

Gruß,

Chris

PS: Zu spät :D
 

LeaveX

Aktives Mitglied
Java:
public Mosaik()
	{
		start();
	}

hab ich aufgerufen nur bekomm ich eine krasse Fehlermeldung.

Java:
java.lang.IllegalArgumentException: rows and cols cannot both be zero
	at java.awt.GridLayout.<init>(Unknown Source)
	at FarbMosaik.<init>(FarbMosaik.java:14)
	at Mosaik.start(Mosaik.java:30)
	at Mosaik.<init>(Mosaik.java:22)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
 

javimka

Top Contributor
So krass ist die Exception nun auch wieder nicht. Irgendwo verwendest du ein GridLayout und übergibst dem Konstruktor zwei mal das Argument 0: [c]new GridLayout(0,0);[/c] führt zu dieser Exception.
 

LeaveX

Aktives Mitglied
Java:
import java.applet.Applet;
import java.awt.*;

public class Mosaik extends Applet{

	private Color farbeRueck, farbeVor;
	private int raster;
	private String temp2;

	ProtokollFenster pf;
	
	FarbMosaik fm;
	ProtokollMosaik pm;
	
	public FarbMosaik getFarbMosaik()
	{
		return fm;
	}
	
	public void init()
    {
    	resize(250, 280);
    	
    	String temp = getParameter("raster");
    	temp2 = getParameter("protokollfenster");
    	
    	try{
    		raster=Integer.parseInt(temp);
    	} catch(NumberFormatException nfe)
    	{
    		raster=5;
    		System.out.println("Default="+raster+" gesetzt. NumberFormatException: "+nfe.getMessage());
    	}
    }
	
	public Mosaik()
	{
		farbeRueck = new Color(230, 30, 50);
    	farbeVor = new Color(50, 210, 30);  
    	
    	FarbMosaik fm = new FarbMosaik(raster, getSize().width, farbeRueck, farbeVor);
    	this.add(fm); 
    	
    	getFarbMosaik();
    	
    	if(temp2.compareTo("on") == 0)
    	{
       		Rectangle bounds = this.getBounds();
       		Point p = this.getLocation();
    		
    		pf = new ProtokollFenster("Protokollfenster", getSize().width, raster, farbeRueck, farbeVor, p.x+bounds.width+7, p.y);
    		
    		
    		fm.getMosaikModel().setProtokollModel (pf.getProtokollMosaik().getProtokollModel());
    		
    		System.out.println("ProtokollFenster = "+pf.getProtokollMosaik());
    		
    		//pm.getProtokollModel().setMosaikModel(this.getFarbMosaik().getMosaikModel());
    	}
    }
}

Wenn ich aber die init in den Konstruktor Packe dann kennt der nimmer getParameter.
 

LeaveX

Aktives Mitglied
Java:
import java.applet.Applet;
import java.awt.*;

public class Mosaik extends Applet{

	private Color farbeRueck, farbeVor;
	private int raster;
	private String temp2;

	ProtokollFenster pf;
	
	FarbMosaik fm;
	ProtokollMosaik pm;
	
	public FarbMosaik getFarbMosaik()
	{
		return fm;
	}
	
	public Mosaik()
	{
		resize(250, 280);
    	
    	String temp = getParameter("raster");
    	temp2 = getParameter("protokollfenster");
    	
    	try{
    		raster=Integer.parseInt(temp);
    	} catch(NumberFormatException nfe)
    	{
    		raster=5;
    		System.out.println("Default="+raster+" gesetzt. NumberFormatException: "+nfe.getMessage());
    	}

		farbeRueck = new Color(230, 30, 50);
    	farbeVor = new Color(50, 210, 30); 
    	
    	FarbMosaik fm = new FarbMosaik(raster, getSize().width, farbeRueck, farbeVor);
    	this.add(fm); 
    	
    	getFarbMosaik();
    	
    	if(temp2.compareTo("on") == 0)
    	{
       		Rectangle bounds = this.getBounds();
       		Point p = this.getLocation();
    		
    		pf = new ProtokollFenster("Protokollfenster", getSize().width, raster, farbeRueck, farbeVor, p.x+bounds.width+7, p.y);
    		
    		
    		fm.getMosaikModel().setProtokollModel (pf.getProtokollMosaik().getProtokollModel());
    		
    		System.out.println("ProtokollFenster = "+pf.getProtokollMosaik());
    		
    		//pm.getProtokollModel().setMosaikModel(this.getFarbMosaik().getMosaikModel());
    	}
    }
}

Bei mir nicht ^^
 

javimka

Top Contributor
Schreib doch eine private Methode initialize(Argumente). Wenn nun init() aufgerufen wird, holt init() die Argumente mit getParameter und übergibt sie initialize(...). Wenn der Konstruktor mit Argumenten aufgerufen wird, übergibt er die erhaltenen Argumente der Methode initialize(...).
 

javimka

Top Contributor
Der return wäre void. Ich habe mir das so gedacht:
Java:
public class Mosaik extends Applet {

  // Konstruktor
  public Mosaik(Arg1 arg1, Arg2 arg2, ...) {
    initialize(arg1, arg2, ...);
  }

  // init
  public init() {
    Arg1 arg1 = getParameter("Arg1");
    Arg2 arg2 = getParameter("Arg2");
    ...
    initialize(arg1, arg2, ...);
  }

  // Hier wird das Objekt zusammengebastelt
  private void initialize(Arg1 arg1, Arg2 arg2, ...) {
    ... // Alles, was gemacht werden muss
  }
}

So kommt es nicht mehr darauf an, ob du eine Instanz der Klasse mittels Konstruktor erzeugst oder ob du die Klasse Mosaik als Startklasse für ein Applet nimmst und es mit init() startest.
 

LeaveX

Aktives Mitglied
Java:
import java.applet.Applet;
import java.awt.*;

public class Mosaik extends Applet{

	private Color farbeRueck, farbeVor;
	private int raster;
	private String temp, temp2;
	
	
	private int initRaster; 
	private String initTemp, initTemp2; 

	ProtokollFenster pf;
	
	FarbMosaik fm;
	ProtokollMosaik pm;
	
	public FarbMosaik getFarbMosaik()
	{
		return fm;
	}
	
	public void init()
    {
		
    	resize(250, 280);
    	
    	temp = getParameter("raster");
    	temp2 = getParameter("protokollfenster");
    	
    	try{
    		raster=Integer.parseInt(temp);
    	} catch(NumberFormatException nfe)
    	{
    		raster=5;
    		System.out.println("Default="+raster+" gesetzt. NumberFormatException: "+nfe.getMessage());
    	}
    	
    	initialization(raster, temp, temp2);
    }
	
	public void initialization(int initRaster, String initTemp, String initTemp2)
	{				
		farbeRueck = new Color(230, 30, 50);
    	farbeVor = new Color(50, 210, 30); 
    	
    	FarbMosaik fm = new FarbMosaik(raster, getSize().width, farbeRueck, farbeVor);
    	this.add(fm); 
    	
    	getFarbMosaik();
    	
    	if(temp2.compareTo("on") == 0)
    	{
       		Rectangle bounds = this.getBounds();
       		Point p = this.getLocation();
    		
    		pf = new ProtokollFenster("Protokollfenster", getSize().width, raster, farbeRueck, farbeVor, p.x+bounds.width+7, p.y);
    		
    		
    		fm.getMosaikModel().setProtokollModel (pf.getProtokollMosaik().getProtokollModel());
    		
    		System.out.println("ProtokollFenster = "+pf.getProtokollMosaik());
    		
    		//pm.getProtokollModel().setMosaikModel(this.getFarbMosaik().getMosaikModel());
    	}
    }
	
	public Mosaik(int initRaster, String initTemp, String initTemp2)
	{
		initialization(initRaster, initTemp, initTemp2);
	}
}

Java:
/**
 * @(#)ProtokollFenster.java
 *
 *
 * @author 
 * @version 1.00 2009/12/23
 */
import java.awt.*;

public class ProtokollFenster extends Frame {
	
	ProtokollMosaik pm;
	
	Mosaik mm;
	
	public ProtokollMosaik getProtokollMosaik() 
	{ 
		return pm; 
	} 
	

    public ProtokollFenster(String titel, int width, int raster, Color farbeRueck, Color farbeVor, int x, int y) {
    	
    	super(titel);
    	
    	this.setSize(width, width);
    	
    	pm = new ProtokollMosaik(raster, width, farbeRueck, farbeVor);
    	
		this.add(pm);
		
		System.out.println("Mosaik = "+mm.getFarbMosaik());
		
		//pm.getProtokollModel().setMosaikModel(mm.getFarbMosaik().getMosaikModel());
    	
    	this.setLocation(x,y);
    	
    	this.setResizable(false);
    	
    	this.setVisible(true);
    }
}

Error:
Java:
Laden: Instanz von Mosaik.class kann nicht erstellt werden.
java.lang.InstantiationException: Mosaik
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.applet.AppletPanel.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
 

javimka

Top Contributor
Wie hast du denn jetzt eine Instanz von Mosaik erzeugt? Mittels Konstruktor oder hast du Mosaik als Startklasse für eine Applet verwendet?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
T InvalidClassException - Read null attempting to read class descriptor for object Allgemeine Java-Themen 8
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
Zeppi Cast Object in Generics Allgemeine Java-Themen 4
MoxxiManagarm Mapping into existing object Allgemeine Java-Themen 15
coolian Swing erstellt fillreckt immmer ein neues object Allgemeine Java-Themen 13
N Wo ist Object.class ? Allgemeine Java-Themen 0
R Erste Schritte Object reference funktioniert nicht. Wie mach ichs richtig? Allgemeine Java-Themen 3
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
N Gibt es etwas allgemeineres as Object? Allgemeine Java-Themen 16
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
Z Vergleich zwischen int und Object Allgemeine Java-Themen 1
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
J Ist eine Instanz von einem bestimmten Object Typ? Allgemeine Java-Themen 6
L Sortieren von "Map<String, Object>" Allgemeine Java-Themen 2
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
G REST- Object darstellung Allgemeine Java-Themen 6
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
darekkay Generics: Wildcard und Object Allgemeine Java-Themen 5
O Socket Object wird scheinbar falsch empfangen Allgemeine Java-Themen 6
N Klasse/Object Eigenaufruf Allgemeine Java-Themen 5
G JNI Shared Object Allgemeine Java-Themen 10
B Variable class in java.lang.Object Allgemeine Java-Themen 11
S Klassen Zuorgnung Object-char Allgemeine Java-Themen 2
N java.lang.IllegalMonitorStateException: object not locked by thread before notify() Allgemeine Java-Themen 2
S Type mismatch: cannot convert from Object to float Allgemeine Java-Themen 3
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
M Jaxb und JPA: A cycle is detected in the object graph Allgemeine Java-Themen 5
H double dispatch und equals(Object) Allgemeine Java-Themen 6
J Datentypen Problem mit Date-Object Allgemeine Java-Themen 2
B Variablen Alle RenderingHints.Keys (KEY_*) in Array + alle RenderingHints.Keys (VALUE_*) in Object[] Allgemeine Java-Themen 8
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
L Object Instanz anhand eines Strings Allgemeine Java-Themen 10
A Datei als Object einlesen und das Object als Singleton instance setzen. Allgemeine Java-Themen 13
DEvent embedded Object Database in Text Format Allgemeine Java-Themen 5
J Casting Problem Object, Double und String Allgemeine Java-Themen 3
M Object-Instanz in Date übersetzen Allgemeine Java-Themen 6
P Tree Object structure Allgemeine Java-Themen 19
G Object mit clone kopieren Allgemeine Java-Themen 21
J merkwürdig: Object Allgemeine Java-Themen 6
woezelmann Object nach Deserialisierung nicht mehr gleich Allgemeine Java-Themen 13
Iron Monkey Object in Datei effizienter lesen / schreiben Allgemeine Java-Themen 13
dayaftereh Serializable und Object In/Out Stream Allgemeine Java-Themen 2
T Object auf Double, Int, String testen Allgemeine Java-Themen 5
N serialize deserialize java object über string Allgemeine Java-Themen 8
N getName() of reflection Object Allgemeine Java-Themen 4
B Probelm mit File Object Allgemeine Java-Themen 6
G NoClassDefFoundError: java/lang/Object Allgemeine Java-Themen 4
S Liste Object Löschen Allgemeine Java-Themen 7
P not enough space for object heap - Trotz mehr RAM? Allgemeine Java-Themen 6
MQue List<String> aus List<Object> generieren Allgemeine Java-Themen 2
M ArrayList<Object[]> und toArray() Allgemeine Java-Themen 5
Daniel_L LinkedList vom Typ Object-Array? Allgemeine Java-Themen 4
B Warum return type Object ? Allgemeine Java-Themen 4
D Generisches Object erstellen Allgemeine Java-Themen 2
M Databinding von Object zu properties-Datei Allgemeine Java-Themen 10
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
A NullPointer bei konvertierung von byteArr --> Object Allgemeine Java-Themen 3
foobar Object to byte[] ohne Serializable Allgemeine Java-Themen 6
reibi Object clonen spezial Allgemeine Java-Themen 8
C casten vom Typ Object nach Double[][] Allgemeine Java-Themen 2
X cannot convert from Object[] to Integer[] Allgemeine Java-Themen 2
G JSON Object auslesen Allgemeine Java-Themen 1
T cast Object to Double[] Allgemeine Java-Themen 2
G Object. Wrapper Allgemeine Java-Themen 12
V Object durchsuchen Allgemeine Java-Themen 4
U eigene Datenstruktur ArrayList<String> nach Object [][ Allgemeine Java-Themen 2
T "Object o = new Object()" vs. "new Object()&q Allgemeine Java-Themen 8
T Object -> byte[] Allgemeine Java-Themen 5
M Implementation von Zugriffen auf Object[index] in der JVM Allgemeine Java-Themen 9
T Klasse => Primitiv ? Object instanceof Klasse Allgemeine Java-Themen 2
B mit methode ein object zurückgeben. Allgemeine Java-Themen 5
R Object Dynamisch erzeugen (Reflection API) Allgemeine Java-Themen 22
T HashMap (String, Object(String , int)) nach int sortieren Allgemeine Java-Themen 7
P Typ Object in socket umwandeln Allgemeine Java-Themen 4
G Object cast via Reflection Allgemeine Java-Themen 8
Zed JList Object einfügen und Text anzeigen Allgemeine Java-Themen 3
MQue Object in Integer umwandeln Allgemeine Java-Themen 3
G Error: Hashtable Type safety: The method put(Object, Object) Allgemeine Java-Themen 6
T double to object Allgemeine Java-Themen 3
S File Object zu Directory machen ? Allgemeine Java-Themen 9
V Brauche dringend Hilfe. Object-handling Allgemeine Java-Themen 4
N Warning "The Cast from Object to" Allgemeine Java-Themen 9
K Threads und ein übergeordnetes Object Allgemeine Java-Themen 7
F Zugriff mittels getObject() oder this.object ? Allgemeine Java-Themen 8
W Object -> isPrimitiv? Allgemeine Java-Themen 7
D Cast schlägt fehl : Object[] zu Button[] Allgemeine Java-Themen 2
S Object nach Integer umwandeln Allgemeine Java-Themen 13
R object zu array casten. Allgemeine Java-Themen 2
N Map Object Allgemeine Java-Themen 13
G Eine C/C++ Referenz in einem Java Object speichern Allgemeine Java-Themen 5
N Ermitteln welchen Typ ein "Object"-Objekt enthält Allgemeine Java-Themen 11
K Cast ohne neues Object zu erzeugen Allgemeine Java-Themen 12
D Object in int casten Allgemeine Java-Themen 7
N Object-Array mit Comparator absteigend sortieren? Allgemeine Java-Themen 10
D Object to Long casting Allgemeine Java-Themen 9
G Object mit static Feldern speichern Allgemeine Java-Themen 9
D vergleichbare Object-Objekte generisch vergleichen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben