Jump to content
Melde dich an, um diesem Inhalt zu folgen  

Übergabe Variablen

Empfohlene Beiträge

Halli Hallo,

ich habe mir ein kleines Programm mit eine JFrame, mehren Textfeldern,Buttons und Checkboxen geschrieben. Auf dem Button hängt nen Actionlistener und wenn dieser gedrückt wird, soll er mir die eingegeben Werte der Textfeldern & Checkboxen in einer anderen Klasse ausgeben. 

Siehe hier:

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class mycontroller implements ActionListener  {
  
  private Frame frame;
 
  public void startgui(){
    Frame frame = new Frame(this);
    frame.setVisible(true);
    
  }
  
  public void actionPerformed (ActionEvent e){
    String command = e.getActionCommand();
    
    if (command.equals("Datei einlesen"))
    {
      //ausgabe tf1
      //ausgabe tf2
      //ausgabe tf3
      //ausgabe cb1
      //ausgabe cb2
    } 
    else if (command.equals("Abbruch"))
    {
      System.out.println("Abbruch");
      
    } 
  }
}

Leider bekomme ich es ums verrecken nicht hin. Hat da jemand ne Idee?

Hier noch meine 2 anderen Klassen

import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;

public class Frame extends JFrame {
  
  public Frame(ActionListener listener){
    //fenstereigenschaften
    
    setTitle("MonTech HD3000  Shore / Dichte");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(300,300); 
    setLayout(null);
    setResizable(false);                                 
    setLocationRelativeTo(null);
    
    
    //panel
    
    JPanel p1 = new JPanel(); 
    JPanel p2 = new JPanel();
    JPanel p3 = new JPanel();
    JPanel p4 = new JPanel();
    JPanel p5 = new JPanel();
    JPanel p6 = new JPanel();
    
    
    //fensterinhalt
    
    JLabel titlelabel = new JLabel("XXXXXXXXXXXXXXXXXXXXXXXXXX");
    
    JLabel l1 = new JLabel("XXXXXXXXXXX");
    JTextField tf1 = new JTextField(6); 
    p1.add(l1);
    p1.add(tf1);
    
    
    JLabel l5 = new JLabel("-");
    JTextField tf2 = new JTextField(3); 
    p2.add(l5);
    p2.add(tf2);
    
    
    JLabel l2 = new JLabel("xxxxxxxxxx");
    JTextField tf3 = new JTextField(2); 
    p3.add(l2); 
    p3.add(tf3);
    
    JLabel l3 = new JLabel("XXXXX");
    JCheckBox cb1 = new JCheckBox();
    p4.add(l3);
    p4.add(cb1);
    
    JLabel l4 = new JLabel("XXXXX");
    JCheckBox cb2 = new JCheckBox();
    p5.add(l4);
    p5.add(cb2);
    
    
    
    //Buttons
    
    JPanel buttonpanel = new JPanel ();
    JButton okbutton = new JButton ("Datei einlesen");
    JButton closebutton = new JButton ("Abbruch");
    buttonpanel.add(okbutton);
    buttonpanel.add(closebutton);
    
    // layout  
    
    titlelabel.setBounds(50,0,200,50);
    p1.setBounds(0,50,165,40);
    p2.setBounds(152,50,70,40);
    p3.setBounds(-26,90,185,40);
    p4.setBounds(25,130,100,40);
    p5.setBounds(26,170,100,40);
    buttonpanel.setBounds(0,225,300,200);
    
    
    add(titlelabel);
    add(buttonpanel);
    add(p1);
    add(p2);
    add(p3);
    add(p4);
    add(p5);
    
    // listener
    
    
    okbutton.addActionListener(listener);
    closebutton.addActionListener(listener);
    
    String tag = tf1.getText();
    String auf = tf2.getText();
    String misch = tf3.getText();
    boolean di = cb1.isSelected();
    boolean sh = cb2.isSelected();
  }
}
public class launcher{
  public static void main (String[] args) {
    mycontroller c = new mycontroller();
    c.startgui();  
    }
  }

 

Danke im Voraus :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Du erstellst die JTextFields nicht im Konstruktor, sondern in der Klasse als Member. Entweder private und mit Gettern oder public. Dann kannst du im Controller per frame.tf1.getText() bzw. frame.deinGetter().getText() an den Wert herankommen.

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Die verschiedenen UI-Klassen sollte höchstens etwas voneinander wissen, wenn ineinander verschachtelt sind.
Für einen Datenaustausch sollte man Datenklassen, Nachrichten oder sonst was nehmen. Wenn du so anfängst, dann macht ggf. jede Anpassung an einem Fenster die halbe Anwendung kaputt.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Am 24.6.2016 um 08:46 schrieb etreu:

Die verschiedenen UI-Klassen sollte höchstens etwas voneinander wissen, wenn ineinander verschachtelt sind.
Für einen Datenaustausch sollte man Datenklassen, Nachrichten oder sonst was nehmen. Wenn du so anfängst, dann macht ggf. jede Anpassung an einem Fenster die halbe Anwendung kaputt.

Exakt!

Außerdem gibt es doch anscheinend schon eine Klasse Controller (mycontroller). Benutze die um zwischen den einzelnen Views zu kommunizieren.

bearbeitet von Gottlike

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Am 24.6.2016 um 08:46 schrieb etreu:

Die verschiedenen UI-Klassen sollte höchstens etwas voneinander wissen, wenn ineinander verschachtelt sind.
Für einen Datenaustausch sollte man Datenklassen, Nachrichten oder sonst was nehmen. Wenn du so anfängst, dann macht ggf. jede Anpassung an einem Fenster die halbe Anwendung kaputt.

Selbst dann nicht mal wirklich. Sie sollten über Interfaces kommunizieren.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung