Farben steuern durch Buttons
-
Hallo,
Mit dem Code möchte ich die Farbe der Zeichnung (Verkehrsampel hier) durch
Buttons steuern. Aber die Farbe verändert sich gar nicht. Wo stimmt's nicht?public class Verkehrsampel extends java.applet.Applet implements ActionListener { private Label anzeige = new Label("Traffic Light Exercise"); private Button next = new Button("Next"); private Button stop = new Button("Stop"); private Panel top = new Panel(new FlowLayout()); private Panel middle = new Panel(new FlowLayout()); private Panel bottom = new Panel(new BorderLayout(5, 10)); private Graphics g; public void init() { setLayout(new GridLayout(3, 1)); add(top); top.add(anzeige); add(bottom); bottom.add("West", next); bottom.add("East", stop); next.addActionListener(this); stop.addActionListener(this); } public void paint(Graphics g) { g.fillOval(50,100,150,150); } public void actionPerformed(ActionEvent e) { Button ursprung = (Button)e.getSource(); if (ursprung.getLabel().equals("Next")) { Color green = Color.green; //repaint(); paint(this.getGraphics()); } else if (ursprung.getLabel().equals("Stop")) { Color red = Color.red; paint(this.getGraphics()); } } }
Danke
-
Du musst den Farbwert in der paint-Methode setzen!
g.setColor(Color.red)
...
-
Wie kann ich die Farbe denn verändern?
-
Wenn du es schon so machst, dann musst du nichtmehr viel ändern:
if (ursprung.getLabel().equals("Next")) { Color green = Color.green; Graphics g = this.getGraphics(); g.setColor(green); //repaint(); //Das ist übrigens schlecht, wenn man paint direkt aufruft. paint(g); }