ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
561
561
EMPFEHLEN
-
13.02.06 15:10 #1
Hi...
ich habe 3 Buttons:
-gelb
-blau
-rot
Je nachdem welchen Button ich anklicke, soll sich die Hintergrundfarbe ändern.
Laut Core Java Buch soll man die Hintergrundfarbe mit setBackground() ändern können.
Dieser Befehl wird bei mir nicht erkannt: s.h. ganz unten
Alles andere sollte eigentlich stimmen.
Gruß
Aaron
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ButtonTest { public static void main(String[] args) { myFrame frame = new myFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } } // Hier wird das Fenster angelegt class myFrame extends JFrame { public myFrame() { setTitle("Button Test"); setSize(640, 480); // Panel in das Fenster einfügen myPanel panel = new myPanel(); Container container = getContentPane(); container.add(panel); } } // Hier werden die Button und mit den entsprechenden Aktionen verbunden class myPanel extends JPanel { public myPanel() { // Schaltfläche erzeugen JButton yellowButton = new JButton("gelb"); JButton blueButton = new JButton("blue"); JButton redButton = new JButton("red"); // Zum Panel hinzufügen add(yellowButton); add(blueButton); add(redButton); //Schaltflächeanktion erzeugen myAction yellowAction = new myAction(Color.yellow); myAction blueAction = new myAction(Color.blue); myAction redAction = new myAction(Color.red); // Aktion mit der Schaltfläche verbinden yellowButton.addActionListener(yellowAction); blueButton.addActionListener(blueAction); redButton.addActionListener(redAction); } } class myAction implements ActionListener { Color background; public myAction(Color c) { background = c; } public void actionPerformed(ActionEvent e) { setBackground(background); } }
-
Hi,
er erkennt die Methode nicht an, weil deine Klasse myAction (Klassen sollen immer gross geschrieben werden) den ActionListener implementiert und nicht den Button.
So auf den schnellen Blick ist bei dir auch alles richtig. Du musst nur deinem ActionListener (myAction) den Button mit uebergeben.
Beispiel:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
class myAction implements ActionListener { Color background; Button myButton; public myAction(Button myButton, Color c) { background = c; this.myButton = nyButton; } public void actionPerformed(ActionEvent e) { myButton.setBackground(background); } }Geändert von illaX (14.02.06 um 08:07 Uhr)
MfG
illaX
-
Du musst nichtmal eine Instanzvariable benutzen, die kann man sich sparen..
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
class myAction implements ActionListener { Color background; public myAction(Button myButton, Color c) { background = c; } public void actionPerformed(ActionEvent e) { if(e.getSource instanceOf JButton){ if(e.getActionCommand.equals("gelb"){ ((JButton)e.getSource) .setBackground(background); } } } }
-
Auf die idee bin ich bisher noch gar nicht gekommen. Aber so ist es natuerlich noch besser

Am besten waers noch wie du statt Button Component nimmst, dann kannst du es bei allen Componenten anwenden
MfG
illaX
Ähnliche Themen
-
Auflösungs änderung = design änderung
Von SameX im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 10.11.05, 16:24 -
VPN - IP Änderung
Von djnelly im Forum NetzwerkeAntworten: 5Letzter Beitrag: 22.10.04, 06:44 -
letzte Änderung
Von xppx im Forum PHPAntworten: 6Letzter Beitrag: 19.09.04, 14:25 -
Tabelle Hintergrundfarbe ändern mit Radio-Button bzw. Checkbox?
Von Aztech im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 22.07.04, 23:01 -
Farbeinstelllungen - keine Änderung bei einer Änderung :-)
Von pauschpage im Forum PhotoshopAntworten: 1Letzter Beitrag: 11.08.03, 21:47





Zitieren
Login





