Code:
import java.awt.*;
import java.awt.event.*;
public class MainFrameGUI extends Frame{
public String str = "KlasseMainFrameGUI";
public MainFrameGUI(ActionListener a) {
super("GrafikTest2");
setSize(200, 300);
setBackground(Color.RED);
addWindowListener(new WindowClosingAdapter(true));
MenuItem mi_blau = new MenuItem("Blau");
mi_blau.addActionListener(a);
MenuItem mi_gruen = new MenuItem("Grün");
mi_gruen.addActionListener(a);
Menu hintergrund = new Menu("Hintergrund");
hintergrund.add(mi_blau);
hintergrund.add(mi_gruen);
MenuBar mb = new MenuBar();
mb.add(hintergrund);
setMenuBar(mb);
setVisible(true);
}
}
public class MainFrameCommand implements ActionListener {
public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "Blau") {
//Hintergrundfarbe des MainFrameGUI, welches das MenüItem enthält, auf Blau setzen
}
if (e.getActionCommand() == "Grün") {
//Hintergrundfarbe des MainFrameGUI, welches das MenuItem enthält, auf Grün setzen
}
}
}
public class Test {
public static void main(String[] args) {
MainFrameCommand cmd = new MainFrameCommand();
MainFrameGUI gui = new MainFrameGUI(cmd);
}
}
Hallo
Ich habe folgendes Problem: Ich möchte GUI und Anwendungscode trennen. Dies ist mir auch gelungen, aber ich weiss nicht, wie man in der Klasse MainFrameCommand, nachdem der User auf einen Menü-Eintrag geklickt hat, das Parent-Window ermittelt, welches den entsprechenden Menü-Eintrag beinhaltet. Ich möchte im obigen Falle also die Hintergrundfarbe des gui-Objekts jeweils auf Blau oder Grün setzen. Wie ermittle ich aber das gui-Objekt in der Klasse MainFrameCommand? Oder ist mein Ansatz, diese Aufgabe zu lösen schlecht? Ich würde mich freuen, wenn mir jemand den Code in den entsprechenden Zeilen der MainFrameCommand-Klasse mitteilen könnte.
Gruss,
sharks