Hallo,
ich habe ein kleines Problem.
Ich schreibe eine Klasse (GanzRech) die durch eine andere vorgegebene Klasse(IntEinAus) erweitert wird. Ein Objekt der Klasse IntEinAus ist im prinzip eine Box mit einem JLabel und einem JTextField. Ich weis das ich mit setCont() und getCont() auf die Felder zugreifen kann.
Meine Klasse implementiert PropertyChangeListener.
Ich möchte folgendes machen.
Im Konstruktor meiner Klasse erstelle ich mehere Objekte von IntEinAus und melde da den PropertyChangeListener an.
Wenn ich jetzt z.B. was ins erste und zweite TextFeld etwas eintippe, sollen die Beiden werte addiert werden und dann ins dritte textFeld eingetragen werden.
Mein Problem ist, bzw Denkfehler, wenn ich in der MainMethode jetzt ein Objekt erzeuge, und dann in der Deklaration von properyChange() darauf zugreifen will also z.b. fenster.ausgabe1.setCont() dann geht das nicht... da ja das Objekt in der mainMethode lokal ist, oder?
hier mein Quelltext,
ich hoffe ihr versteht mein Problem.
Gruß
Jan
ich habe ein kleines Problem.
Ich schreibe eine Klasse (GanzRech) die durch eine andere vorgegebene Klasse(IntEinAus) erweitert wird. Ein Objekt der Klasse IntEinAus ist im prinzip eine Box mit einem JLabel und einem JTextField. Ich weis das ich mit setCont() und getCont() auf die Felder zugreifen kann.
Meine Klasse implementiert PropertyChangeListener.
Ich möchte folgendes machen.
Im Konstruktor meiner Klasse erstelle ich mehere Objekte von IntEinAus und melde da den PropertyChangeListener an.
Wenn ich jetzt z.B. was ins erste und zweite TextFeld etwas eintippe, sollen die Beiden werte addiert werden und dann ins dritte textFeld eingetragen werden.
Mein Problem ist, bzw Denkfehler, wenn ich in der MainMethode jetzt ein Objekt erzeuge, und dann in der Deklaration von properyChange() darauf zugreifen will also z.b. fenster.ausgabe1.setCont() dann geht das nicht... da ja das Objekt in der mainMethode lokal ist, oder?
hier mein Quelltext,
ich hoffe ihr versteht mein Problem.
Code:
package namenlos;
import java.awt.event.*;
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
public class GanzRechG extends JFrame implements PropertyChangeListener {
public GanzRechG(String titel){
// # Ausruf des Konstruktors der Oberklasse
super(titel);
// # Erstelle neues Box Element
Box kasten1 = Box.createVerticalBox();
// # Erstelle zwei IntEinAus Objekt für die Eingabe
IntEinAus eingabe1 = new IntEinAus("z1", true);
IntEinAus eingabe2 = new IntEinAus("z2", true);
// # Erstellt fünf IntEinAus Objekte für die Ausgabe
IntEinAus ausgabe1 = new IntEinAus("z1 + z2", false);
IntEinAus ausgabe2 = new IntEinAus("z1 - z2", false);
IntEinAus ausgabe3 = new IntEinAus("z1 + z2", false);
IntEinAus ausgabe4 = new IntEinAus("z1 / z2", false);
IntEinAus ausgabe5 = new IntEinAus("z1 % z2", false);
// # Lauscher wird an Eingabe Objekten angemeldet
eingabe1.addPropertyChangeListener(this);
eingabe2.addPropertyChangeListener(this);
// # Ein- und Ausgabe Objekte werde in kasten01 eingefügt
kasten1.add(eingabe1);
kasten1.add(eingabe2);
kasten1.add(ausgabe1);
kasten1.add(ausgabe2);
kasten1.add(ausgabe3);
kasten1.add(ausgabe4);
kasten1.add(ausgabe5);
// # kasten01 wird ins JFrame eingefügt
this.add(kasten1);
// # Grösse und Position des JFrames
this.setBounds(50, 50, 500, 500);
// # Schliesen beim Schliesen
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// # Zeige Fentser an
this.setVisible(true);
}//Konstruktor
// ------------------------------------------------------------------------
public static void main(String[] args) {
// # Erzeugt neues GanzRechG Grabo Objekt
final GanzRechG fenster = new GanzRechG("GanzRechG");
}//main
// ------------------------------------------------------------------------
public void propertyChange(PropertyChangeEvent e) {
//Hier ist der Fehler
//fenster.ausgabe1.setCont("test");
System.out.println(e.getNewValue());
}
// ------------------------------------------------------------------------
}//class GranzRechG
Gruß
Jan