L
lucci
Gast
Hi,
habe ne Frage wollte mal die MVC Pattern testen, und habe dazu drei Klassen gemacht, sehr einfach, eine für
JFrame eine für den Listener und eine für die Daten...
doch beim Knopfdruck kommt kein wechsel der Hintergrund Farbe??
was habe ich da falsch gemacht...
und mit getSource()==button_blau habe ich eine fehlermeldung von eclipse bekommen ? deshalb habe ich es mit
getActionCommand probiert...scheint aber auch nicht zu gehen...
habe ich vielleicht diesen Teil falsch :
hier die drei Klassen : danke
.....
..
habe ne Frage wollte mal die MVC Pattern testen, und habe dazu drei Klassen gemacht, sehr einfach, eine für
JFrame eine für den Listener und eine für die Daten...
doch beim Knopfdruck kommt kein wechsel der Hintergrund Farbe??
was habe ich da falsch gemacht...
und mit getSource()==button_blau habe ich eine fehlermeldung von eclipse bekommen ? deshalb habe ich es mit
getActionCommand probiert...scheint aber auch nicht zu gehen...
habe ich vielleicht diesen Teil falsch :
Code:
private GUI_Labor frame;
private GUI_Model slave = new GUI_Model();
public GUI_Controller(GUI_Labor f) {
this.frame = f;
}
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
// MVC - hier die View Klasse
public class GUI_Labor extends JFrame {
Button button_rot = new Button("Rot");
Button button_blau = new Button("Blau");
public GUI_Labor() {
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(button_blau);
c.add(button_rot);
button_rot.setActionCommand("ROT");
button_blau.setActionCommand("BLAU");
this.button_rot.addActionListener(new GUI_Controller(this));
this.button_blau.addActionListener(new GUI_Controller(this));
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(200, 200);
setVisible(true);
}
public static void main(String[] args)
// Programm-Beginn
{
new GUI_Labor();
}
}
Code:
import java.awt.Color;
public class GUI_Model {
//MVC --> hier Model Datenklasse
public void doRed(GUI_Labor frame) {
frame.setBackground(Color.ORANGE);
frame.repaint();
}
public void doBlue(GUI_Labor frame) {
frame.setBackground(Color.BLUE);
frame.repaint();
}
}
..
Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GUI_Controller implements ActionListener {
private GUI_Labor frame;
private GUI_Model slave = new GUI_Model();
public GUI_Controller(GUI_Labor f) {
this.frame = f;
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("ROT")) {
slave.doRed(frame);
}
if (e.getActionCommand().equals("BLAU")) {
slave.doBlue(frame);
}
}
}