Prob mit 2 Klassen und set Methode

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Abend,

ich erstelle grad ein etwas grösseres Programm und habe ein Problem, hier mal der wichtigste Code
Code:
public class Window extends Frame{
   ....
 public       JTextArea error       = new JTextArea();   
 public       JPanel fehler_meldung = new JPanel();     
 public final JButton start         = new JButton("berechnung");
 .. weiterer Code ...

public Window(String title){
... code ...
 start.addActionListener(new ActionListener(){
     public void actionPerformed(ActionEvent ev){
                ClassA class_a = new ClassA();
                class_a.berechnung();
     }
    });
}

public void setTheText(){
 this.error.setText("Hallo");
}

Der Sinn ist folgender, ich will der Methode Berechnung einen Text übergeben und diesen in der Klasse A bearbeiten.

Code:
public ClassA{
  ..code...
   Windows wnd = new Window();
  public ClassA(){
  super();
  }
  
  // Hier die Methode
 public void berechnung(void){
  ... paar Zeilen Code...
  // Hier das entscheidende, ich will den Text in das JTextArea aus der Klasse Window setzen
 wnd.setTheText();
 }
}

Das will er jedoch nicht, was muss man da den beachten ?
 

L-ectron-X

Gesperrter Benutzer
Wenn Du das so machen willst, wie du es begonnen hast, musst Du den Konstruktor von ClassA umschreiben und ihm eine Referenz vom Typ Frame oder deiner Klasse Window übergeben.
In Deiner Klasse Window erzeugst du dann eine Instanz von ClassA und übergibst ihr die this-Referenz von Window.
Außerdem sollte, so fern geschenen, in deinem Code nicht das gesamte java.awt-Paket importiert werden, da die Namensgebung für deine Klasse Window sonst zu Problemen führen könnte.
Code:
public class Window extends JFrame { 
   .... 
  public Window(String title){ 
    //... code ... 
    start.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent ev) { 
        ClassA class_a = new ClassA(this); 
        class_a.berechnung(); 
       } 
    }); 
  } 

  public void setTheText() { 
    this.error.setText("Hallo"); 
  }
}
Code:
public class ClassA { 
  //..code... 
  private Window wnd;

  public ClassA(Window wnd) { 
    this.wnd = wnd;
  } 

  public void berechnung() { 
    //... paar Zeilen Code...  
    wnd.setTheText(); 
  } 
}

Einfacher wäre jedoch:
Code:
public class Window extends JFrame { 
   .... 
  public Window(String title){ 
    //... code ... 
    start.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent ev){ 
        ClassA class_a = new ClassA(); 
        setTheText(class_a.berechnung()); 
       } 
    }); 
  } 

  public void setTheText(String text) { 
    textArea.setText(text); //oder append()
  }
}
Code:
public ClassA { 
  //..code... 

  public ClassA() { 
    //initialisieren
  } 

  public String berechnung() { 
    //... paar Zeilen Code...  
    return einString; 
  } 
}
Außerdem betrachte deinen Code nochmals. Du leitest Window von Frame ab. Falls du hier von java.awt.Frame ableitest, solltest du besser keine Swing-Komponenten verwenden bzw. AWT und Swing nicht mischen.
Besser ist es auf jeden Fall gleich ganz mit Swing zu arbeiten, sobald du eine Swing-Komponente benötigst.
 
G

Gast

Gast
Ich bedanke mich erstmal bei dir, wenn der Kaffee wirkt werde ich mich wieder an das Programm setzen.

CU
 
G

Guest

Gast
Das klappt soweit ganz gut, ich habe nur folgendes Problem und weiss nicht wie ich das lösen könnte :

Code:
public class Window extends JFrame {
   ....
  public Window(String title){
    //... code ...
    start.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent ev) {
        ClassA class_a = new ClassA(this);
        class_a.berechnung();
       }
    });
  }

  public void setTheText() {
    this.error.setText("Hallo");
  }
}

Das mit this will nicht, weil er dann auf den ActionListener "zugreift" und nicht auf die Klasse Window, wie kann ich ihm sagen, dass ich die Klasse Window meine ?
 
G

Gast

Gast
Hat sich erledigt

Code:
public Window getThis(){
 return this;
}

und dann einfach

Code:
Class a = new Class(getThis());
 

Wildcard

Top Contributor
Also dafür brauchst du nun wirklich keinen getter :lol:
Code:
Class a = new Class(this);
 

L-ectron-X

Gesperrter Benutzer
Ähm sorry, ich habe übersehen, dass wir es hier mit einer inneren Klasse zu tun haben.
Um der inneren Klasse die Referenz auf die umgebende Klasse zu übergeben schreibst Du folgendes:
Code:
ClassA class_a = new ClassA(Window.this);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Prob:Tabelle bei Zellensprung: Letzte zeile doppelt sichtbar AWT, Swing, JavaFX & SWT 7
Gentle KeyListener + ActionListener + AdjustmentListener -> Prob AWT, Swing, JavaFX & SWT 8
S JColorChooser Prob mit Ok/Abbr. AWT, Swing, JavaFX & SWT 3
M Prob. beim dynamischen Erzeugen v. Obj! AWT, Swing, JavaFX & SWT 11
X wieder mal ein prob mit dnd AWT, Swing, JavaFX & SWT 14
S JFrame prob unter linux AWT, Swing, JavaFX & SWT 4
G Prob mit JTable AWT, Swing, JavaFX & SWT 4
O Prob, wenn JTree einem JScrollPane hinzufüge! AWT, Swing, JavaFX & SWT 2
G Graphics (g) und JComponent prob. AWT, Swing, JavaFX & SWT 2
B prob mit abgeleitetem JButton AWT, Swing, JavaFX & SWT 3
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Ø Swing Button in anderer Klassen ausführen AWT, Swing, JavaFX & SWT 6
H Swing Frame an andere Klassen weitergeben AWT, Swing, JavaFX & SWT 4
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
D Zwei getrennte Java Klassen verbinden. Wie ? AWT, Swing, JavaFX & SWT 2
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
Soloeco Swing JTextField auslesen Klassen übergreifend AWT, Swing, JavaFX & SWT 16
K Wie kann ich eine Variable zwischen Tab Klassen weitergeben ? AWT, Swing, JavaFX & SWT 7
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
B Pong Projekt mit LWJGL Klassen exportieren AWT, Swing, JavaFX & SWT 14
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
D JavaFX @FXML Annotation mit Klassen und Instanzen verbinden? AWT, Swing, JavaFX & SWT 5
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
M Swing MVC mit mehreren Klassen AWT, Swing, JavaFX & SWT 2
C Thread in Klassen starten AWT, Swing, JavaFX & SWT 4
C Swing Aus verschiedenen Klassen zeichnen. AWT, Swing, JavaFX & SWT 2
M Innere Klassen, ZugriffsProbleme AWT, Swing, JavaFX & SWT 4
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
Z Swing Von vielen Klassen auf ein GUI-Element zugreifen AWT, Swing, JavaFX & SWT 10
F Swing JAVA GUI Übergabe von Werten zwischen mehreren Fenstern/Klassen AWT, Swing, JavaFX & SWT 10
C In Hauptfenster Programm-Klassen implementieren AWT, Swing, JavaFX & SWT 9
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
B 2 Klassen Kommunikation AWT, Swing, JavaFX & SWT 4
P versch. JPanel Klassen über Menü öffnen AWT, Swing, JavaFX & SWT 12
E Swing auf klassen zugreifen AWT, Swing, JavaFX & SWT 2
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
Zettelkasten repaint() von anderen Klassen aufrufen AWT, Swing, JavaFX & SWT 4
3 JFrame in Klassen aufrufen AWT, Swing, JavaFX & SWT 2
P Swing Beziehungen zwischen 3 Klassen AWT, Swing, JavaFX & SWT 4
Luk10 repaint() auch in anderen Klassen! AWT, Swing, JavaFX & SWT 6
L innere klassen AWT, Swing, JavaFX & SWT 3
lumo SWT Table und Klassen AWT, Swing, JavaFX & SWT 14
S import von Klassen (zwei Panels eine Form) AWT, Swing, JavaFX & SWT 39
B abstrakte klassen / anonyme klassen AWT, Swing, JavaFX & SWT 4
B Swing Passendes Layout finden: Welche Klassen muss ich wie anwenden? AWT, Swing, JavaFX & SWT 8
H Swing Prog in mehrere Klassen zerlegen AWT, Swing, JavaFX & SWT 13
G Variblenwert zwischen zwei Klassen übergeben AWT, Swing, JavaFX & SWT 3
G Prinzipelles zum Umgang von Klassen untereinander AWT, Swing, JavaFX & SWT 4
M JTree und TreeModel mit 2 Klassen AWT, Swing, JavaFX & SWT 3
T Kommunikation zwischen Zwei GUI-Klassen AWT, Swing, JavaFX & SWT 2
J Unterschied zwischen nicht-statischen und statischen Klassen AWT, Swing, JavaFX & SWT 5
H jar-archive mit mehreren Klassen erstellen AWT, Swing, JavaFX & SWT 3
G Grafik auf mehrere Methoden/Klassen zerlegen AWT, Swing, JavaFX & SWT 2
D Event Klassen AWT, Swing, JavaFX & SWT 2
A JTextArea-Problem in Inneren Klassen und Packages AWT, Swing, JavaFX & SWT 3
G Klassen übergreifen AWT, Swing, JavaFX & SWT 4
G ActionListener und Methoden-Aufruf aus anderen Klassen AWT, Swing, JavaFX & SWT 3
G externe klassen auf gui objekte zugreifen lassen AWT, Swing, JavaFX & SWT 11
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
P paintComponent-Methode wird dauernd neu aufgerufen AWT, Swing, JavaFX & SWT 2
M passende Reflexion-Methode?? AWT, Swing, JavaFX & SWT 1
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
M Swing Methode datenLesen() greift auf catchBlock zu? AWT, Swing, JavaFX & SWT 25
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
U was bewirkt die methode fill und unterschied zu anderen fill Methoden in 2dgraphics? (Java)? AWT, Swing, JavaFX & SWT 6
H Transparent zeichnen mit drawImage in paintComponent Methode AWT, Swing, JavaFX & SWT 3
Z Methode bei Boolean change neu Ausführen AWT, Swing, JavaFX & SWT 9
T TableView über Methode befüllen AWT, Swing, JavaFX & SWT 10
H Event Handling Thread - Abruf der get-Methode AWT, Swing, JavaFX & SWT 5
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
J Rekursive Methode JProgressBar AWT, Swing, JavaFX & SWT 4
A Methode pausieren bis anderes Ereignis ausgeführt AWT, Swing, JavaFX & SWT 2
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
J 2D-Grafik Brauche Erklärung von Methode AWT, Swing, JavaFX & SWT 1
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
I Methode Draw3DRect und DrawRect AWT, Swing, JavaFX & SWT 2
krgewb 2D-Grafik paint-Methode wird zu oft ausgeführt AWT, Swing, JavaFX & SWT 5
S Zeichen ohne paint-Methode AWT, Swing, JavaFX & SWT 2
K Methode repaint() AWT, Swing, JavaFX & SWT 1
A Methode in bestimmten Intervall ausführen AWT, Swing, JavaFX & SWT 2
J Swing Wann brauche ich @Override vor der paint()-Methode? AWT, Swing, JavaFX & SWT 1
Z jLabel von Methode aus aktualisieren AWT, Swing, JavaFX & SWT 7
Q AWT Methodenaufruf aus actionPerformed-Methode AWT, Swing, JavaFX & SWT 4
G Eine paint-Methode, 2 Welten? AWT, Swing, JavaFX & SWT 3
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
T Swing Methode in Listener aufrufen AWT, Swing, JavaFX & SWT 3
P keyTyped-Methode AWT, Swing, JavaFX & SWT 1
D JavaFX Java Methoden mit JavaFX Methode kommunizieren lassen? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben