Hallo,
ich bin noch am ziehmlich am Anfang und möchte probieren, mich in die GUI und die Listener einzuarbeiten. Im folgenden Quelltext versuche ich:
1. eine Aktion e an eine andere Klasse weiterzugeben, wenn ich einen Knopf in einem Submenu drücke
2. diese Aktion in der anderen Klasse zu empfangen und auszuwerten
3. die Auswertung in einem Hashtable zu übersetzen
4. die Übersetzung als String auszugeben, so das sie zu sehen ist.
Leider funktioniert scheinbar weder die Weitergabe an die andere Klasse, noch die sichtbare ausgabe über system.out.println, auch wenn man doch direkt einen String eingibt. Kann mir jemand bitte weiterhelfen?
ich bin noch am ziehmlich am Anfang und möchte probieren, mich in die GUI und die Listener einzuarbeiten. Im folgenden Quelltext versuche ich:
1. eine Aktion e an eine andere Klasse weiterzugeben, wenn ich einen Knopf in einem Submenu drücke
2. diese Aktion in der anderen Klasse zu empfangen und auszuwerten
3. die Auswertung in einem Hashtable zu übersetzen
4. die Übersetzung als String auszugeben, so das sie zu sehen ist.
Leider funktioniert scheinbar weder die Weitergabe an die andere Klasse, noch die sichtbare ausgabe über system.out.println, auch wenn man doch direkt einen String eingibt. Kann mir jemand bitte weiterhelfen?
Java:
public class Main
{
public static void main(String[] args)
{
new GUI();
}
}
public class GUI extends JFrame
{
private static final long serialVersionUID = 1L;
JPanel drawpane;
JMenuBar menu;
public GUI()
{
drawpane = new JPanel();
menu = new JMenuBar();
JMenu shape_chooser = new JMenu("Shapes");
JMenu draw = new JMenu("Draw");
JMenuItem scribble = new JMenuItem("Scribble");
JMenuItem rectangle = new JMenuItem("Rectangle");
JMenuItem oval = new JMenuItem("Oval");
JMenuItem line = new JMenuItem("Line");
shape_chooser.add(scribble);
shape_chooser.add(rectangle);
shape_chooser.add(oval);
shape_chooser.add(line);
shape_chooser.addActionListener(new TestManager());
draw.add(shape_chooser);
menu.add(draw);
FlowLayout flow = new FlowLayout();
flow.addLayoutComponent("Panel", drawpane);
this.setSize(640, 480);
this.setLayout(flow);
this.setJMenuBar(menu);
this.setVisible(true);
}
}
public class TestManager implements ActionListener
{
Hashtable<String,Integer> shapes;
public TestManager()
{
Hashtable<String,Integer> shapes = new Hashtable<String,Integer>();
shapes.put("Test1", 1);
shapes.put("Test2", 2);
shapes.put("Test3", 3);
shapes.put("Test4", 4);
}
public void actionPerformed(ActionEvent e)
{
System.out.println(shapes.get(e.getActionCommand().toString()));
}
}