[Java] Variablen aus anonymer Kasse setzen

MasterOfWar

Lt. Commander
Registriert
Jan. 2009
Beiträge
1.397
Abend,
ich habe folgendes Problem :
Code:
String x;
String y;
.
.
public void init(){
.
feld= new JTextField(15);
feldII= new JTextField(15);
.
.
public void actionPerformed(ActionEvent e) {
String temp_x=feld.getText();
String temp_y=feldII.getText();

}
}
Wie bekomme ich es jetzt hin, dass x, y die Werte von temp_x, bzw. temp_y bekommen ?
 
Code:
x = feld.getText();

prinzipiell müsstest du von Inneren Klassen auf die Klassenvariablen der äußeren Klasse zugreifen können. Funktioniert das nicht?

edit: vielleicht muss es auch Outer.x (oder OuterClass.x heißen) bin mir da gerade nicht mehr so sicher...
edit2: okay, nocheinmal nachgeschaut. solange es keine Nameskonflikte gibt, solltest du mit "x" auf die Klassenvariable "x" zugreifen können
 
Zuletzt bearbeitet:
einfach das temp weglassen und gleich mit this.x = feld.getText(); ? :)

ansonsten deine beiden Strings sind private?

und das ganze ist eine Klasse?


Edit: @AKFede: da nicht static, denke ich es handelt sich um instanzvariablen?!
 
Ich dachte auch, dass es klappen müsste, allerdings bekomme ich immer null...
 
was soll den drinne stehen?

ich habs für ne double z.B. so gemacht:

double d = Double.parseDouble(textFieldXYZ.getText());

Edit: ok denke bei einem String sollte es einfach so gehen...


Edit: @AKFede: Instantvariable != Klassenvariable ;) es geht ja um eine Instanz (Objekt) der Klasse und nicht die Klasse selbst. Oder lieg ich da falsch?
 
Zuletzt bearbeitet:
Wie lautet denn die Exception?
Vielleicht etwas mehr Code...


@Silentstorm: Klassenvariable = Instanzvariable :), ich habe da vielleicht ein wenig andere Namensvorstellungen
@Silentstorm die zweite ;): Du hast recht, ich nenne die Dinger Klassenvariablen, weil es Variablen der Klassen sind. Aber es sind Instanzvariablen und keine Klassenvariablen. Ich werde mal mein Wortschatz überarbeiten und mich genauer ausdrücken :)
 
Zuletzt bearbeitet:
Wo hast du den ne anonyme Klasse in deinem Beispiel?

Ansonsten einmal über Static, dazu aber bitte gründlich nachdenken, ob man das überhaupt will.
Oder halt mit final, dann kannst du auch von innen auf die äußeren zugreifen.
 
Zuletzt bearbeitet:
Kenn den restlichen Code nicht, aber du hast wohl mehr als eine Instanz von der Klasse. Würde mir das nicht angewöhnen etwas static zu machen, nur weil nicht bekannt ist warums nicht geht.
 
Klassenname.this.x = temp_x;

Klassenname ist dabei der Name der Klasse in der die anonyme Klasse implementiert ist.
 
Zurück
Oben