Farben wechseln mit JButton

aschmasch

Mitglied
hier ist mein Quellcode:

der erste ist die eigene Klasse von mir. (switchtest)
Java:
package gui14;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JPanel;

public class switchtest extends JPanel{
   
    private static final long serialVersionUID = 1L;
    
    Color farben;
     int status=0;
     int red,green,blue;
     
     switchtest(){
	super();
    }
    
     
     public int State(){
	 return status;
     }
     
     public void Color(){
	 System.out.println("aktuelle Farbe: "+farben);
     }
   
     public void setFarbe(int f){
       
       this.status = f;
       repaint();
       
       if (status==1){
	       farben=Color.RED;
	       red=255;
	       green=0;
	       blue=0;
	      
	   }
       if (status==2){
	       farben=Color.GREEN;
	       red=0;
	       green=255;
	       blue=0;
	     
	   }
       if (status==3){
	       farben=Color.ORANGE;
	       red=255;
	       green=200;
	       blue=0;
	     
	   }
	   
   }
   
   public int getFarbe(){
       return status;
   }
   
   public int getGreen(){
       return green;
   }
   
   public int getRed(){
       return red;
   }
   
   public int getBlue(){
       return blue;
   }
   
  
   public void paintComponent(Graphics gr){
       super.paintComponent(gr);
       Graphics2D g1 = (Graphics2D) gr;
       
       int r,g,b;
       r=getRed();
       g=getGreen();
       b=getBlue();
       
       System.out.println("Paint Komponente aufgerufen. Status: "+getFarbe());
//     g1.setColor(new Color(r,g,b));
       g1.setColor(farben);
       g1.fillOval(0,0, 50, 50);
       g1.drawOval(0,0, 50, 50);
       
   
   }
   
   
}

Das folgende ist das Programm bzw. der JFrame um die Farben wechseln zu lassen.

Java:
package gui14;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;

public class TestSwitch extends javax.swing.JFrame {
	private JRadioButton jRadioButton1;
	private JRadioButton jRadioButton3;
	private JPanel jPanel1;
	private JRadioButton jRadioButton2;
	private switchtest test = new switchtest();

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				TestSwitch inst = new TestSwitch();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public TestSwitch() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
			    jRadioButton1 = new JRadioButton();
			    getContentPane().add(jRadioButton1);
			    jRadioButton1.setText("jRadioButton1");
			    jRadioButton1.setBounds(6, 7, 159, 23);
			}
			{
			    jRadioButton2 = new JRadioButton();
			    getContentPane().add(jRadioButton2);
			    jRadioButton2.setText("jRadioButton2");
			    jRadioButton2.setBounds(6, 30, 159, 23);
			}
			{
			    jRadioButton3 = new JRadioButton();
			    getContentPane().add(jRadioButton3);
			    jRadioButton3.setText("jRadioButton3");
			    jRadioButton3.setBounds(6, 53, 159, 23);
			}
			pack();
			this.setSize(264, 128);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
		
		ButtonGroup bg1 = new ButtonGroup();
		bg1.add(jRadioButton1);
		jRadioButton1.addActionListener(new ActionListener() {
		    public void actionPerformed(ActionEvent evt) {
			jRadioButton1ActionPerformed(evt);
		    }
		});
		bg1.add(jRadioButton2);
		jRadioButton2.addActionListener(new ActionListener() {
		    public void actionPerformed(ActionEvent evt) {
			jRadioButton2ActionPerformed(evt);
		    }
		});
		bg1.add(jRadioButton3);
		jRadioButton3.addActionListener(new ActionListener() {
		    public void actionPerformed(ActionEvent evt) {
			jRadioButton3ActionPerformed(evt);
		    }
		});
		{
		    jPanel1 = new switchtest();
		    getContentPane().add(jPanel1);
		    jPanel1.setBounds(178, 11, 60, 60);
		    jPanel1.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
		}
	}
	
	private void jRadioButton1ActionPerformed(ActionEvent evt) {
	    test.setFarbe(1);
	    test.Color();
//	    test.status=1;
	}
	
	private void jRadioButton2ActionPerformed(ActionEvent evt) {
	    test.setFarbe(2);
	    test.Color();
	}
	
	private void jRadioButton3ActionPerformed(ActionEvent evt) {
	    test.setFarbe(3);
	    test.Color();
	    System.out.print("Status: "+test.getFarbe());
	}

}


mein Problem ist jetzt, wenn ich die JButton betätige, passiert nix. Ich hab das vorher mit einer switch/case-Anweisung ausprobiert. Ging nicht. jetzt hab ich das mit if-Anweisungen probiert. geht ebenfalls nicht.

Mir kommt es so vor, als wenn in der paintComponent-Methode die globalen Variablen nicht "ankommen" bzw. nicht initialisiert werden. Das geht eigentlich nicht, da ich deren Status schon vorher ausgeben lasse. Der Status wird immer gesetzt, die Farbe wird eingestellt, aber das Programm zeichnet nicht den Kreis mit der gewünschten Farbe.

Langsam weiß ich auch nicht mehr weiter.

Ich danke vielmals für jegliche Hilfe.

Es kann sein das hier und da Fehler auftauchen oder unnötige Befehle. Editiere schon lange daran.

DANKE,

der aschmasch ;)

Screenshot im Anhang
 

Anhänge

  • shot_1.jpg
    shot_1.jpg
    72,6 KB · Aufrufe: 22

Flown

Administrator
Mitarbeiter
Also ich kann nur sagen das der Code sehr unübersichtlich ist. Dein Problem liegt daran das du zwei Instanzen von deinem switchtest verwendest.

Lösung:

[JAVA=88]
jPanel1 = test; // <-------- hier auf test ändern, dann funktionierts
getContentPane().add(jPanel1);
jPanel1.setBounds(178, 11, 60, 60);
[/code]
 
Zuletzt bearbeitet:

aschmasch

Mitglied
Super!!!

vielen Dank für die schnelle Antwort.
Verzeih mir die Unübersichtlichkeit. Bin noch Anfänger.

Wie kann man sich hier bedanken...bin neu in den Forum.

Auf dem Wege sag ich es dir trotzdem nochmal...DANKE!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
Fats Waller Farben mixen für den Hintergrund ? Java Basics - Anfänger-Themen 1
C Farben als Enum Java Basics - Anfänger-Themen 3
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
L Input/Output In Farben schreiben Java Basics - Anfänger-Themen 3
M Farben/Color Abfragen von Farben innerhalb einer Methode Java Basics - Anfänger-Themen 9
M Hilfe bei Zählen von Farben? Java Basics - Anfänger-Themen 7
L farben 0xff000000 Java Basics - Anfänger-Themen 2
O Verschiedene Farben in einer GUI Java Basics - Anfänger-Themen 15
Dogge Farben-Spiel Java Basics - Anfänger-Themen 20
L Input/Output [SWT] Mehrere Farben im Text Java Basics - Anfänger-Themen 2
D Mehrere verschiedene Farben pro fillRect Java Basics - Anfänger-Themen 3
C RGB Farben Java Basics - Anfänger-Themen 4
K Farben in Variablen speichern Java Basics - Anfänger-Themen 15
S Wort in zwei farben aufleuchten lassen Java Basics - Anfänger-Themen 2
A Mehrere verschieden Farben / Textfeld Java Basics - Anfänger-Themen 2
B Farben vergleichen Java Basics - Anfänger-Themen 5
B Hex in Int und Farben abschwächen Java Basics - Anfänger-Themen 7
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
J list mit unterschiedlichen farben Java Basics - Anfänger-Themen 6
G Applet und Farben Java Basics - Anfänger-Themen 7
M Raster mit zufälligen Farben Java Basics - Anfänger-Themen 4
L Farbverlauf in Java mit RGB Farben Java Basics - Anfänger-Themen 3
L JLabel mit unterschiedlichen Farben Java Basics - Anfänger-Themen 4
K Schrift und Farben im Frame (Anfänger) Java Basics - Anfänger-Themen 2
P Farben Invertieren per BufferedImageOp Java Basics - Anfänger-Themen 4
F Farben eines ganzen BufferedImage invertieren Java Basics - Anfänger-Themen 2
S Problem mit PNG (16mio farben.) Java Basics - Anfänger-Themen 4
R Farben in einem Applet Java Basics - Anfänger-Themen 6
E Scrollbar- Farben Java Basics - Anfänger-Themen 5
I Farben bei der Console Java Basics - Anfänger-Themen 2
G Buttons und Farben Java Basics - Anfänger-Themen 6
G buttons mit wechselnden farben belegen Java Basics - Anfänger-Themen 3
Dilandau konstante eigene farben im programm definieren Java Basics - Anfänger-Themen 13
S GUI Frame wechseln Java Basics - Anfänger-Themen 15
J Dateiverzeichnis wechseln Java Basics - Anfänger-Themen 4
D Apache POI Tabelle wechseln Java Basics - Anfänger-Themen 2
A GUI Fensterinhalt wechseln Java Basics - Anfänger-Themen 5
C Tabs in JTabbedPane wechseln, wenn Tabs in eigenen Klassen sind Java Basics - Anfänger-Themen 2
S Erste Schritte Von JFrame in nächstes JFRame wechseln Java Basics - Anfänger-Themen 0
R JLabel imageicon jede Sekunde wechseln Java Basics - Anfänger-Themen 3
N Input/Output mit FileDialog Verzeichnis wechseln Java Basics - Anfänger-Themen 20
M Timer: period während Verlauf wechseln Java Basics - Anfänger-Themen 12
K ActionListener Klasse wechseln Java Basics - Anfänger-Themen 10
G Inhalt einer JComboBox wechseln Java Basics - Anfänger-Themen 5
G Sprache wechseln Java Basics - Anfänger-Themen 3
G Mousefocus wechseln Java Basics - Anfänger-Themen 3
L Threads wechseln Java Basics - Anfänger-Themen 4
N User wechseln? Java Basics - Anfänger-Themen 3
G in Verzeichnis auf gleicher Ebene wechseln Java Basics - Anfänger-Themen 4
zilti In Java das Verzeichnis wechseln Java Basics - Anfänger-Themen 21
S Anzuzeigende JPanel's wechseln? Java Basics - Anfänger-Themen 3
S Klassen wechseln Java Basics - Anfänger-Themen 3
S Funktion für Ziffernpositionen wechseln? Java Basics - Anfänger-Themen 2
L Programmsprache wechseln (Labels.): Properties auslesen Java Basics - Anfänger-Themen 2
I Wie kann man in root -User wechseln? Java Basics - Anfänger-Themen 16
D Menü soll immer da bleiben - Frames sollen wechseln Java Basics - Anfänger-Themen 3
P Button "Farbe wechseln" Java Basics - Anfänger-Themen 11
D ResourceBundle - zwischen Sprachen wechseln Java Basics - Anfänger-Themen 7
Hilde22 Neu Start JButton einfügen Java Basics - Anfänger-Themen 2
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
M JButton setBackground() färbt nicht den ganzen Knopf Java Basics - Anfänger-Themen 4
C JButton reagiert nicht auf actionListener Java Basics - Anfänger-Themen 15
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
J Jbutton blinkt Java Basics - Anfänger-Themen 5
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
E JButton und JTextField Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
J Erste Schritte Actionlistener für tbar/ JButton Java Basics - Anfänger-Themen 15
krgewb Icon von JButton ändern Java Basics - Anfänger-Themen 1
P JButton -Arrays Java Basics - Anfänger-Themen 4
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
L Erste Schritte JButton reagiert nicht Java Basics - Anfänger-Themen 5
S Bild über JButton legen Java Basics - Anfänger-Themen 3
V Einem JButton anweisungen geben Java Basics - Anfänger-Themen 4
D Methoden JButton und JLabel in einer Methode erstellen Java Basics - Anfänger-Themen 5
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
J JButton macht was er will Java Basics - Anfänger-Themen 3
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
H JButton - Wechsel der Textfarbe alle 500ms Java Basics - Anfänger-Themen 10
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
N JButton anpassen Java Basics - Anfänger-Themen 3
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
schoenosrockos JButton füllt immer das ganze frame Java Basics - Anfänger-Themen 1
D JButton in JDialog mit Action belgen Java Basics - Anfänger-Themen 6
V JButton einer anderen Klasse übergeben? Java Basics - Anfänger-Themen 6
F JButton [] mit Werten hinterlegen Java Basics - Anfänger-Themen 10
M Code um per jButton ein neues Fenster zu öffnen Java Basics - Anfänger-Themen 3
A weiter JButton Fehler Java Basics - Anfänger-Themen 3
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
S JCombobox und JButton verknüpfen Java Basics - Anfänger-Themen 6
V wie kann ich eine Schleife pausieren, bis ein Jbutton gedrückt wird ? Java Basics - Anfänger-Themen 17
N Erste Schritte JButton reagiert nur einmal. Java Basics - Anfänger-Themen 12
S JButton Java Basics - Anfänger-Themen 2
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
S Interface JButton etc. wird in JFrame mit paint() nicht angezeigt Java Basics - Anfänger-Themen 6
A Labels Inner JButton Event Erstellbar? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben