# GUI und Hauptklasse verbinden



## Kaffetrinker (10. Jul 2009)

Hallo,
ich probiere mich gerade ein wenig in der GUI-Programmierung und habe eine grundlegende Sache nicht verstanden.
Wie trenne ich meine Hauptklassen (Programmlogik) mit den GUI-Klassen.
Man kann zwar einfach in der Hauptklase eine Objekt der GUI-Klasse erzeugen, aber wie schicke ich die Events,
die dort geworfen werden, wieder zurück an die Hauptklasse?

Beispiel: Hauptklasse

```
public class Main {
    
    public Main(){
        Fenster meinFenster = new Fenster();
        meinFenster.setVisible(true);  
    }
    
    public void tu_was_wenn_button_gedrueckt_wird(){
        
    }
    public static void main(String[] args) {
        Main myMain = new Main();
    } 
}
```

GUI-Klasse


```
public class Fenster extends javax.swing.JFrame {

    public Fenster() {
        initComponents();
    }

    private javax.swing.JButton jButton1;

    private void initComponents() {

        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jButton1)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jButton1)
        );

        pack();
    }

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// mach was in der Hauptklasse
}
}
```


----------



## Michael... (10. Jul 2009)

Du könntest z.B. die ActionListener in Deiner Main-Klasse definieren und an die GUI-Klasse übergeben.


----------



## L-ectron-X (11. Jul 2009)

Ich machs immer so, wie das auch in der FAQ beschrieben wurde:
Beispiel 1: Variante Referenzübergabe


----------

