Hallo,
ich habe ein recht einfaches Problem, aber ich bekomme es einfach nicht hin.
Wie kann ich GUI und Logik sauber trennen?
Als Beispiel habe ich folgendes einfaches Beispiel geschrieben:
Hauptklasse:
GUI-Klasse:
Nun meine Frage: Wie kann ich aus der GUI Klasse heraus die Methode test() aufrufen ohne das dabei die Mainclasse wieder den Actionlistener implementieren muss? Dazu muss das Event aus der GUI-Klasse ja an die mainclasse zurückgeliefert werden. Wie geht das?
ich habe ein recht einfaches Problem, aber ich bekomme es einfach nicht hin.
Wie kann ich GUI und Logik sauber trennen?
Als Beispiel habe ich folgendes einfaches Beispiel geschrieben:
Hauptklasse:
Code:
public class mainclass {
public static void main(String[] args) {
meinfenster fenster = new meinfenster();
}
public static void test(){
System.out.println("test");
}
}
GUI-Klasse:
Code:
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class meinfenster extends JFrame implements ActionListener{
public meinfenster() {
this.setSize(300,100);
this.setLocation(200,200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
ibutton1.setText("TestButton");
ibutton1.addActionListener(this);
jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
jLabel1.setText("Test");
this.getContentPane().add(ibutton1, java.awt.BorderLayout.SOUTH);
this.getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER);
this.show();
}
JButton ibutton1 = new JButton();
JLabel jLabel1 = new JLabel();
public void actionPerformed(ActionEvent e) {
}
}