Swing Zugriff auf ein Objekt

ivanhs37

Neues Mitglied
Hallo ich schreibe mein ersted GUI, der Aufbau ist über mehrere Klassen realisiert. Das was ich nicht schaffe das ein JButton über die Klasse ActionHandler auf das Objekt ZeichenPanel() zugreift und die Farbe ändert.

Hier mal meine Klassen:

Java:
public class SwingSwang {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		JFrame frame = new JFrame("First SwingSwang ;)");
		Container container = frame.getContentPane();
		
		/**
		 * Layout vom Contentpane festlegen
		 * Hinzufügen der oberen und unteren Klassen
		 */
		container.setLayout(new BorderLayout());
		container.add(new LayoutPanel(), BorderLayout.CENTER);
		
		/**
		 * Frame zeichnen
		 */
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(500,500);
		frame.setVisible(true);
	}

}

Java:
public class LayoutPanel extends JPanel {
	
	/**
	 * Aufteilung des Layouts in oben und unten
	 * Hinzufügen des oberen Bereichs = Content
	 * Hinzufügen des unteren Bereichs = Textpanel
	 */
	public LayoutPanel(){
		setLayout(new BorderLayout());
	add(mbar, BorderLayout.NORTH);
		add(new ContentPanel(), BorderLayout.CENTER);
		add(new TextPanel("Ich bin eine Textzeile und freue mich darauf hier zu sein ;)"), BorderLayout.SOUTH);
	}

}

Java:
class ContentPanel extends JPanel {
	
	
	public ContentPanel(){
		setLayout(new GridLayout(1,2));
		ZeichenPanel paints = new ZeichenPanel();
		ButtonPanel buttons = new ButtonPanel(paints);
		
		add(buttons);
		add(paints);
	}
}

Java:
class ButtonPanel extends JPanel{
	protected ZeichenPanel paintPanel;
	
	public ButtonPanel(ZeichenPanel paints){
		paintPanel = paints;
		setLayout(new GridLayout(3,1));
		JButton red = new JButton("rot");
		JButton yellow = new JButton("gelb");
		JButton green = new JButton("grün");
		
		add(red);
		add(yellow);
		add(green);
		
		ActionListener buttonListener = new ActionHandler();
		
		red.addActionListener(buttonListener);
		yellow.addActionListener(buttonListener);
		green.addActionListener(buttonListener);
	}

	public ZeichenPanel getPaintPanel() {
		return paintPanel;
	}
	
}

Java:
public class ZeichenPanel extends JPanel {
	protected Color color;
	
	public ZeichenPanel(Color color) {
		this.color = color;
	}

	public ZeichenPanel() {
	}

	public void paintComponent(Graphics g){
		super.paintComponent(g);
		g.setColor(color);
		g.fillRect(0, 0, 1000, 1000);
	}

}

Hier in dieser Klasse sollen die Farbe von dem ZeichenPanel Objektes geändertw erden, je nach dem welcher Button gedrückt wird.

Was fehlt mir noch damit das geht?

Java:
public class ActionHandler extends JPanel implements ActionListener {
	/* (non-Javadoc)
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand() == "grün"){
			System.out.println("Button green pressed");
		}
		if(e.getActionCommand() == "rot"){
			System.out.println("Button red pressed");
		}
		if(e.getActionCommand() == "gelb"){
			System.out.println("Button yellow pressed");
		}
	}
}
 

ChrisKu

Bekanntes Mitglied
Also momentan gibt Dein ActionHandler auf ButtonClick ja nur einen Text aus. Statt dessen muss er ja die Farbe von ZeichenPanel ändern. Hierzu musst Du

1. Im Zeichenpanel noch einen Setter zur Änderung der Farbe einfügen

Code:
public void setColor(Color color){
        this.color = color;
    }

2. Dem ActionHandler eine Referenz auf das zeichenPanel übergeben, z.B. im Konstruktur

Code:
public ActionHandler(ZeichenPanel zp){
        this.zp = zp;
    }

3. In Deinem ActionHandler die Farbe entsprechend ändern, z.B.:

Code:
if(e.getActionCommand() == "grün"){
            //System.out.println("Button green pressed");
            zp.setColor(Color.GREEN);
            zp.repaint();
        }
 

ivanhs37

Neues Mitglied
Vielen Dank das war genau das was noch gefehlt hatte. Ich dachte mir schon das der Button nicht weis wen er neu zeichnen muss, wusste nur nicht das es die Referenz auf das ZeichenPanel() ist.

Danke Danke Danke
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
L JavaFX Zugriff auf HostServices im FXML Controller AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
J JavaFX Zugriff auf Child AWT, Swing, JavaFX & SWT 4
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
C JavaFX Zugriff auf TextField aus einer anderen Klasse AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
F JavaFX Zugriff auf Controller Methode von einer normalen Klasse aus AWT, Swing, JavaFX & SWT 4
C JavaFX Zugriff auf TableView AWT, Swing, JavaFX & SWT 2
D JavaFX Zugriff auf Controller erlangen AWT, Swing, JavaFX & SWT 4
L Zugriff auf JavaFX Controls AWT, Swing, JavaFX & SWT 3
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
B Zugriff auf JFrame obwohl die Klasse abgeleitet ist AWT, Swing, JavaFX & SWT 3
V JTable: Zugriff auf einzelne Zellen AWT, Swing, JavaFX & SWT 4
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
A Swing Zugriff auf JButton AWT, Swing, JavaFX & SWT 2
M Zugriff auf Variablen eines Objektes ohne sie auf static zu setzen AWT, Swing, JavaFX & SWT 9
M Zugriff paralleler Threads auf selbes JTextPane AWT, Swing, JavaFX & SWT 6
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
N zugriff auf frame AWT, Swing, JavaFX & SWT 5
N Swing Zugriff JButton auf JTree AWT, Swing, JavaFX & SWT 4
D Zugriff auf Instanz der GUI AWT, Swing, JavaFX & SWT 3
E Swing DB Zugriff mit JProgressBar?! AWT, Swing, JavaFX & SWT 8
R Zugriff auf Model im MVC-Design aus SwingWorker heraus AWT, Swing, JavaFX & SWT 3
H Zugriff JPanel AWT, Swing, JavaFX & SWT 3
D Swing Storage von / Zugriff auf und durch Actions AWT, Swing, JavaFX & SWT 5
S this-Zugriff auf Container höherer Ebene AWT, Swing, JavaFX & SWT 2
S Swing Zugriff auf Polyline in Grafik AWT, Swing, JavaFX & SWT 4
E Swing Zugriff auf Attribute eines JFrames über einen JDialog AWT, Swing, JavaFX & SWT 2
J Zugriff auf HtmlPanel sperren AWT, Swing, JavaFX & SWT 3
D JTree - Zugriff auf Nodes mit Object AWT, Swing, JavaFX & SWT 6
R Zugriff auf Component um addComponentListener() aufzurufen AWT, Swing, JavaFX & SWT 4
O Zugriff auf PreferenceStore aus der Business-Logik-Schicht? AWT, Swing, JavaFX & SWT 11
S NumberFormatException beim Zugriff auf Leeres JTextField AWT, Swing, JavaFX & SWT 8
S Zugriff auf statische Var in MouseEvent -> Warnung AWT, Swing, JavaFX & SWT 6
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
S Zugriff auf Elemente funktioniert mit SWING nicht mehr AWT, Swing, JavaFX & SWT 5
X Zugriff auf "Oberparents" ? AWT, Swing, JavaFX & SWT 4
J JTextArea wird nicht aktualisiert bei Zugriff von außerhalb AWT, Swing, JavaFX & SWT 2
O DB-Zugriff + wie darstellen? AWT, Swing, JavaFX & SWT 6
F Problem bei Zugriff auf ComboBox Item AWT, Swing, JavaFX & SWT 4
G Zugriff auf JTextField AWT, Swing, JavaFX & SWT 2
J Zugriff auf "dynamisch erzeugte" JTextFields AWT, Swing, JavaFX & SWT 2
J Zugriff auf letzte Klasse AWT, Swing, JavaFX & SWT 4
M Zugriff auf Methoden aus einem ActionListener AWT, Swing, JavaFX & SWT 2
F Zugriff auf Oberfläche bzw Trennung GUI / Logik AWT, Swing, JavaFX & SWT 3
I selectedText: Wie bekomme ich Zugriff auf den Text? AWT, Swing, JavaFX & SWT 4
G Zugriff auf Bilder verweigern AWT, Swing, JavaFX & SWT 7
H Zugriff auf die Farbwerte eines Bildes AWT, Swing, JavaFX & SWT 6
G Zugriff auf TextField geht nicht AWT, Swing, JavaFX & SWT 5
G zugriff auf benutzeroberflächenelemente AWT, Swing, JavaFX & SWT 4
V Zugriff auf Components aus einem ActionListener AWT, Swing, JavaFX & SWT 3
M ActionListener-Zugriff durch mehrere Frames AWT, Swing, JavaFX & SWT 5
M Zugriff auf ComboBox! AWT, Swing, JavaFX & SWT 17
G Excel-Zugriff über POI: wohin mit dem Package? AWT, Swing, JavaFX & SWT 4
B Zugriff von Toolbar auf zugehörigen Frame AWT, Swing, JavaFX & SWT 6
O JTabbedPane - Zugriff auf die Elemente eines Tabs AWT, Swing, JavaFX & SWT 4
O JFileChooser - Zugriff auf Dateiname-Feld und Save-Button? AWT, Swing, JavaFX & SWT 6
E Zugriff auf JTextField nach Buttonklick AWT, Swing, JavaFX & SWT 6
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
B mit maus Objekt bewegen AWT, Swing, JavaFX & SWT 3
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
U Was genau ist ein Shape-Objekt? AWT, Swing, JavaFX & SWT 3
DonBronson Objekt bewegen (Mausposition) AWT, Swing, JavaFX & SWT 3
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
U Was ist ein Shape, also klar ein Objekt, aber was ist damit gemeint (Graphics2d)? Und was sidn affinetransformationen AWT, Swing, JavaFX & SWT 1
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
C Objekt an paintComponent weitergeben AWT, Swing, JavaFX & SWT 1
M Swing Objekt Array in GUI ausgeben AWT, Swing, JavaFX & SWT 1
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
M Swing Durch Usereingabe neues Objekt AWT, Swing, JavaFX & SWT 2
K Color-Objekt erzeugen in CMYK AWT, Swing, JavaFX & SWT 2
T Frage zu GUI - Button soll Objekt erfassen AWT, Swing, JavaFX & SWT 2
A Swing Null Pointer Exception obwohl Objekt initialisiert AWT, Swing, JavaFX & SWT 21
J gezeichnetes Objekt anklicken AWT, Swing, JavaFX & SWT 10
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
L JavaFX als eigenes Objekt AWT, Swing, JavaFX & SWT 3
M [JavaFX] Objekt um Zentrum rotieren (Camera) AWT, Swing, JavaFX & SWT 1
E JavaFx Screne mehr als ein "Objekt" zuordnen ? AWT, Swing, JavaFX & SWT 2
F 2D-Grafik Objekt durch Einwirkung einer Kraft im Raum bewegen AWT, Swing, JavaFX & SWT 14
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
C Graphics Objekt in Zeitschleife zeichnen AWT, Swing, JavaFX & SWT 4
R Array aus einem Objekt auslesen AWT, Swing, JavaFX & SWT 4
V 2D-Grafik Frage zum Graphics Objekt AWT, Swing, JavaFX & SWT 2
A AWT TTF-Datei zu Font-Objekt finden? AWT, Swing, JavaFX & SWT 5
S Objekt durch Tasteneingabe mehrmals drehen AWT, Swing, JavaFX & SWT 9
E Swing Objekt zu Position (Point) bewegen AWT, Swing, JavaFX & SWT 2
T 3D-Grafik (Java3D) Aus einem Objekt einer Szene (Würfel, Ebene) die wichtigen Randkoordinaten auslesen AWT, Swing, JavaFX & SWT 3
K Action Listener implementieren über Objekt AWT, Swing, JavaFX & SWT 14

Ähnliche Java Themen

Neue Themen


Oben