Von einer untergeordneten Klasse auf die Variablen der Main zugreifen

Und wie rufe ich dann von der main Konstruktor() auf um bei Bedarf me zu übergeben?
Von der main aus wird das den selben Fehler geben, oder?
 
Du könntest es natürlich auch über die main() übergeben:

Code:
private static Object me;

Konstruktor(Object xyz) {
	me = xyz;
}

public static void main(String[] args) {
	DeinProgramm p = new DeinProgramm(xyz); // xyz entspricht deinem Inhalt für dein Object
}
 
So:
Ich habe jetzt in meiner Klasse Handler ein Objekt main.

Java:
	public static Object main;
		public Handler(Object me) 
		{
		main = me;
		}

Java:
                        System.out.println(main.getClass());
liefert erwartungsgemäß:

class code

leider kann ich nach wie vor nicht auf meine variablen der main zugreifen.
Java:
main.matrix = 3;
eclipse meckert nach wie vor: matrix cannot be resolved to a variable
 
Java:
package handling;

import java.awt.event.*;



public class Handler implements ActionListener 
{
		public int id;
		public static Object main;
		public Handler(int i, Object me) 
		{
		id = i;
		main = me;
		}

		public void actionPerformed(ActionEvent ev)
		{		
			switch(id)
			{
				case 1:
				{
					main.wrong = false;
					main.matrix = (GUI.Frame.dmconvtf.getText()).toCharArray();
					main.wandle((main.matrix[6]-48)*100+(main.matrix[7]-48)*10+(main.matrix[8]-48), (main.matrix[10]-48)*10+(main.matrix[11]-48));
					if(wrong!=true)
					{
						String str = new String(main.show);
						GUI.Frame.result.setText(str);
					}
		
				}	
				case 2:
				{
					main.wrong = false;
					main.matrix = (GUI.Frame.dateconvtf.getText()).toCharArray();
					wandle((matrix[0]-48)*100+(main.matrix[1]-48)*10+(main.matrix[2]-48), (main.matrix[3]-48)*10+(main.matrix[4]-48));
	    		
	    		
	    		
					if(main.wrong!=true)
					{
						String str = new String(main.show);	 
						GUI.Frame.result.setText(str);
					}
			
				
				
				}	
			} 
		}

}


Gerade habe ich bemerkt dass der aufruf main.wandle(...) angenommen wird, also kann ich zumindest schon auf methoden der main zugreifen jetzt fehlen mir nur noch die Variablen

Wenn noch mehr Code gebraucht wird, geb ich gerne!

Danke bis hierhin schonmal!
 
Setz doch in dem Objekt "main" Get-/Set-Methoden für die jeweiligen Variablen. Sprich:

Java:
public int[] getMatrix() {
     return matrix;
}
 
Klingt interessant, aber wie meinst du "in" dem object setzten? einfach entsprechende Methoden in der Klasse schreiben in der ich die Variablen ändern will scheint nicht (so einfach zu Funktionieren).

habe jetzt in der Hauptklasse z.B:
Java:
	public void setMatrix(char[] chars)
	{
	matrix = chars;
	}

und in Handler entsprechend:

Java:
main.setMatrix(irgendEinCharArray);

da meckert Eclipse wiederum: The method setMatrix(char[]) is undefined for the type Object
 
Das funktioniert schon. Dein Problem ist nur, dass du hier...
Java:
public static Object main;
...deine Variable als Object definierst. Wenn du aber auf die Get-/Set-Methoden zugreifen willst, musst du Object durch die jeweilige Klasse/Objekt tauschen, auf das zu zugreifen willst. Zum Beispiel:
Java:
public static DeineKlasse main;
 
ok, versuche ich aber den ausrdruck entsprechend zu ändern
also in Handler
Java:
public static Code main;

einfüge bekomme ich wieder: Code cannot be resolved to a type
 

Neue Beiträge

Zurück