Die Farbe wird nicht angenommen

Status
Nicht offen für weitere Antworten.

DocSteinberg

Mitglied
In meinem Script unten funktioniert das mit dem Malen ohne Probleme. Nur wenn ich über die FarbRadioButtons eine andere Farbe wählen möchte wechselt er egal welche Farbe ich anklicke immer zu Blau. Kann mir jemand eine Helfen, wie ich dieses Beheben kann.
Hier das Script (es ist Bestandteil eines größeren Programmes:

public class Aufgabe37 extends JPanel implements MouseListener, MouseMotionListener {
private int x;
private int y;

Aufgabe37(){

this.add(new JLabel("Malen mit der Maus"));
this.add(new ResetButton(this));

FarbRadioButton rb1 = new FarbRadioButton(Color.BLACK, "Schwarz");
FarbRadioButton rb2 = new FarbRadioButton(Color.RED, "Rot");
FarbRadioButton rb3 = new FarbRadioButton(Color.YELLOW, "Gelb");
FarbRadioButton rb4 = new FarbRadioButton(Color.BLUE, "Blau");

rb1.setSelected(true);

ButtonGroup bgroup = new ButtonGroup();

bgroup.add(rb1);
bgroup.add(rb2);
bgroup.add(rb3);
bgroup.add(rb4);

this.add(rb1);
this.add(rb2);
this.add(rb3);
this.add(rb4);

this.addMouseListener(this);
this.addMouseMotionListener(this);
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mousePressed(MouseEvent e){
setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR ));

x = e.getX();
y = e.getY();
}
public void mouseReleased(MouseEvent e){
setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}

public void mouseDragged(MouseEvent e){
setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR ));

Color farbe = FarbRadioButton.getGewaehlteFarbe();

Graphics g = this.getGraphics();
g.setColor(farbe);
g.drawLine(x, y, e.getX(), e.getY());

x = e.getX();
y = e.getY();
}
public void mouseMoved(MouseEvent e){}

}

class ResetButton extends JButton implements ActionListener {
private JPanel psave;
public ResetButton(JPanel preal){
super("Reset");
psave = preal;
this.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
psave.repaint();
}
}

class FarbRadioButton extends JRadioButton implements ActionListener {
static Color gColor;
private String sreal;
static Color gewaehlteFarbe;

public FarbRadioButton(Color csave, String ssave){
super();

gewaehlteFarbe=Color.BLACK;
gColor=csave;
sreal=ssave;

this.setText(sreal);

this.addActionListener(this);

}

public void actionPerformed(ActionEvent e){
gewaehlteFarbe=gColor;

}
static Color getGewaehlteFarbe(){

return gewaehlteFarbe;
}
}
 

Jango

Gesperrter Benutzer
So ist's besser (rein optisch):
Code:
public class Aufgabe37 extends JPanel implements MouseListener, MouseMotionListener {
	private int x;
	private int y;
	
	Aufgabe37(){
			
		this.add(new JLabel("Malen mit der Maus"));
		this.add(new ResetButton(this));
		
		FarbRadioButton rb1 = new FarbRadioButton(Color.BLACK, "Schwarz");
		FarbRadioButton rb2 = new FarbRadioButton(Color.RED, "Rot");
		FarbRadioButton rb3 = new FarbRadioButton(Color.YELLOW, "Gelb");
		FarbRadioButton rb4 = new FarbRadioButton(Color.BLUE, "Blau");
		
		rb1.setSelected(true);
		
		ButtonGroup bgroup = new ButtonGroup();
		
		bgroup.add(rb1);
		bgroup.add(rb2);
		bgroup.add(rb3);
		bgroup.add(rb4);
		
		this.add(rb1);
		this.add(rb2);
		this.add(rb3);
		this.add(rb4);
		
		this.addMouseListener(this);
		this.addMouseMotionListener(this);
	}
	public void mouseClicked(MouseEvent e){}
	public void mouseEntered(MouseEvent e){}
	public void mouseExited(MouseEvent e){}
	public void mousePressed(MouseEvent e){
		setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR ));
		
		x = e.getX();
		y = e.getY();
	}
	public void mouseReleased(MouseEvent e){
		setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
	}
	
	public void mouseDragged(MouseEvent e){
		setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR ));
		
		Color farbe = FarbRadioButton.getGewaehlteFarbe();
		
		Graphics g = this.getGraphics();
		g.setColor(farbe);
		g.drawLine(x, y, e.getX(), e.getY());
		
		x = e.getX();
		y = e.getY();
	}
	public void mouseMoved(MouseEvent e){}

}

class ResetButton extends JButton implements ActionListener {
	private JPanel psave;
	public ResetButton(JPanel preal){
		super("Reset");
		psave = preal;
		this.addActionListener(this);
	}
	public void actionPerformed(ActionEvent e){
		psave.repaint();
	}
}

class FarbRadioButton extends JRadioButton implements ActionListener {
	static Color gColor;
	private String sreal;
	static Color gewaehlteFarbe;
	
	public FarbRadioButton(Color csave, String ssave){
		super(); 
		
		gewaehlteFarbe=Color.BLACK;
		gColor=csave;
		sreal=ssave;
		
		this.setText(sreal);
	
		this.addActionListener(this);
		
	}
		
	public void actionPerformed(ActionEvent e){
		gewaehlteFarbe=gColor;
		
	}
	static Color getGewaehlteFarbe(){
		
		return gewaehlteFarbe;
	}	
}
 

Marco13

Top Contributor
Ganz kausal gesagt: Es liegt daran, dass 'gColor' static ist. Es wird ihr einfach (zuletzt) Blau zugewiesen. Wenn sie NICHT static wäre, würde es vielleicht funktionieren, aber das würde nichts daran ändern, dass einiges an diesem Code grober Unfug ist. Angefangen beim "this.getGraphics", bis hin zum "FarbRadioButton"... wenn man jetzt noch Linienstärke oder Zeichnmodus wähen will, kommen dann noch Klassen "LinieStärkeTextField" und "ZeichenModusComboBox" dazu?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
Tom/S JLabel Icon Farbe Java Basics - Anfänger-Themen 2
C Farbe in der Auswahlliste (Direkte Reaktion auf Änderung) Java Basics - Anfänger-Themen 3
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
B Eclipse Tabellen Farbe ändern? Java Basics - Anfänger-Themen 2
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
W JLabel, Farbe durch Listener ändern Java Basics - Anfänger-Themen 6
D Mit Buttonklick Farbe der anderen Buttons verändern? Java Basics - Anfänger-Themen 2
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
S Schriftart/Farbe im Grafikfenster ändern Java Basics - Anfänger-Themen 8
I Zähler, der erst wieder zählt nachdem Pixel wieder andere Farbe hat Java Basics - Anfänger-Themen 2
U Farbe meines Würfels jede sekunde ändern! Java Basics - Anfänger-Themen 5
X Bildabschnitt anhand der Farbe und messen Java Basics - Anfänger-Themen 4
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
A Dateiformat mit 100%iger Farbe Java Basics - Anfänger-Themen 6
M Punkt auf eine Farbe prüfen Java Basics - Anfänger-Themen 8
B Methode zum ändern der Farbe? Java Basics - Anfänger-Themen 20
J Bild mit transparenter Farbe Java Basics - Anfänger-Themen 10
T JLabel Farbe ändern, Problem Java Basics - Anfänger-Themen 2
R JTabbedPane - Farbe ändern Java Basics - Anfänger-Themen 4
L Farbe unter Cursor bestimmen Java Basics - Anfänger-Themen 5
B Farbe wählen ohne JColorChooser Java Basics - Anfänger-Themen 13
B JTextArea Farbe und Schrift aendern Java Basics - Anfänger-Themen 2
I Schriftart / farbe / größe bei Emailversand ändern Java Basics - Anfänger-Themen 17
K Farbe heller machen Java Basics - Anfänger-Themen 4
H Farbe setzen Java Basics - Anfänger-Themen 5
D Text Farbe Java Basics - Anfänger-Themen 7
T Ausgabe in Farbe Java Basics - Anfänger-Themen 5
T Die deutsche Flagge :) . Farbe ausgeben Java Basics - Anfänger-Themen 4
G jTable schriftgröße und -farbe ändern? Java Basics - Anfänger-Themen 2
A Im Chat eigenen Beitrag in Farbe zeigen Java Basics - Anfänger-Themen 8
K jTextPane: Farbe des markierten Textes ändern und auslesen? Java Basics - Anfänger-Themen 3
S Zufällige Farbe Java Basics - Anfänger-Themen 5
M Text in der Farbe rot ausgeben Java Basics - Anfänger-Themen 9
L Dreieck soll Farbe ändern Java Basics - Anfänger-Themen 4
S Drucken in farbe Java Basics - Anfänger-Themen 4
P String eine rote Farbe geben? Java Basics - Anfänger-Themen 6
S Cursor Form und oder Farbe verändern, geht das???? Java Basics - Anfänger-Themen 4
K Übergabe der Variable für Farbe Java Basics - Anfänger-Themen 6
D SWING Anwendung mit 3 Buttons zum ändern der Farbe Java Basics - Anfänger-Themen 18
G Farbe des Pixels unter dem Mauszeiger? Java Basics - Anfänger-Themen 40
O Ein Sichtbarer Rahmen (in Farbe) um ein JPanel. Java Basics - Anfänger-Themen 5
F String in Farbe ausgeben Java Basics - Anfänger-Themen 2
D Farbe vom Scrollbalken ändern Java Basics - Anfänger-Themen 6
M Farbe der Titelleiste eines JFrames ändern Java Basics - Anfänger-Themen 6
Bierhumpen Farbe? Java Basics - Anfänger-Themen 4
C Farbe ins Spiel bringen Java Basics - Anfänger-Themen 2
C JTable: Farbe und Checkbox Java Basics - Anfänger-Themen 3
M Bei Swing Komponenten die Farbe ändern? Java Basics - Anfänger-Themen 12
P Button "Farbe wechseln" Java Basics - Anfänger-Themen 11
C Farbe in DOS Java Basics - Anfänger-Themen 2
F Ball soll auf Mausklick farbe ändern. Java Basics - Anfänger-Themen 10
G Farbe invertieren? Java Basics - Anfänger-Themen 14
C Farbe von ProgressBar ändern Java Basics - Anfänger-Themen 3
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
P Webseite vom Smartmeter wird nur unleserlich angezeigt Java Basics - Anfänger-Themen 7
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
Oneixee5 Maven Plugin wird 2 mal ausgeführt Java Basics - Anfänger-Themen 10
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
C Was tun wenn .class erwartet wird ? Java Basics - Anfänger-Themen 6
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben