Swing Event mit Button

Status
Nicht offen für weitere Antworten.

mamelinchen

Bekanntes Mitglied
Ich möchte eine Komponente schreiben,die in der rechten Hälfte eine Fläche darstellt, erstmal schwarz.
Auf der anderen Hälfte befinden sich 3 Buttons,mit der Aufschrift grün, blau,grau.
Wenn man aud die Buttons klickt, soll sich die Fläche dementsprechend färben.
Unten befindet sich ein Textfeld, welches die Koordinaten des Mauszeigers anzeigt.

Der Listener ist ein anonymes Objekt in einer anonymen inneren Klasse.

Mein Problem ist beim GridLAyout sehe ich zwar die Buttons aber die Textfläche wird nicht als Hälfte angezeigt,sondern als Grösse der Buttons.
Wenn ich das Borderlayout einstelle, sieht man nur einen Button und das Textfeld.
Auch das mit dem Listener und den Events verstehe ich nicht so richtig.
Hab zwar ne Menge gelesen, aber irgendwo hackts.

KAnn mir jemand n Tipp geben wie ich das am besten realisiern kann?
Und ob ich Fehler habe?

Hier mein Code:
Java:
public class ButtonComponent extends JPanel{
	
    protected Buttons red;
    protected Buttons green;
    protected Buttons yellow;
    protected static ColorField colorfläche;
	
	public ButtonComponent(){
	setLayout(new GridLayout());
	setOpaque(true);
	    red.setText....
	    green.setText...
	    yellow.setText..
	    add(red, BorderLayout.WEST);
	    add(green, BorderLayout.NORTH);
	    add(yellow, BorderLayout.SOUTH);
	    add(colorfläche);
		add(new JTextField("Mauskoordinaten"),BorderLayout.SOUTH);
	}
...
public static ColorField getColorfläche() {
		return colorfläche;
	}

und mein Button:
Java:
public class Buttons extends JButton {

	public Buttons() {
		addActionListener(new MListener());
	}

	class MListener implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			String command = e.getActionCommand(); 
[COLOR="Red"]woher bekomme ich den command?[/COLOR]
			if (command.equals("rot")) {
				ButtonComponent.getColorfläche().setBackground(Color.RED);
			} else if (command.equals("gelb")) {
	                 ButtonComponent.getColorfläche().setBackground(Color.YELLOW);
			} else if (command.equals("green")) {
			ButtonComponent.getColorfläche().setBackground(Color.GREEN);
			}
		}
	}

Die main hab ich richtig mit den Frames,hier ist wohl was falsch!
 
Zuletzt bearbeitet:

Marco13

Top Contributor
An dem zerhackten Code kann man nichts erkennen.

add(yellow, BorderLayout.SOUTH);
add(colorfläche);

sieht schonmal flasch aus: Einmal mit Positionsangabe, einmal ohne?! Was soll SOUTH in einem GridLayout?

Von JButton zu erben, nur um ihm einen ActionListener hinzuzufügen ist i.a. auch eher unsinnig...
 

Michael...

Top Contributor
Java:
public class ButtonComponent extends JPanel{
...	
	setLayout(new GridLayout());
	setOpaque(true);
	    red.setText....
	    green.setText...
	    yellow.setText..
	    add(red, BorderLayout.WEST);
	    add(green, BorderLayout.NORTH);
	    add(yellow, BorderLayout.SOUTH);
	    add(colorfläche);
		add(new JTextField("Mauskoordinaten"),BorderLayout.SOUTH);
...
Das macht nicht allzu viel Sinn.

Man kann auch Layouts ineinander verschachteln z.B ein JPanel mit GridLayout für die Buttons, ein JPanel mit BorderLayout für Fläche und Textfeld und die beiden dann wieder in eine Komponente mit GridLayout
 

André Uhres

Top Contributor
Den Button Command kannst du mit setActionCommand setzen. Für das Layout könntest du vielleicht auch GridBagLayout versuchen. Mehr kann ich aber nicht dazu sagen, denn ich werde nicht ganz klug aus deiner Beschreibung. Eine Zeichnung wäre vielleicht deutlicher.
 

mamelinchen

Bekanntes Mitglied
Habs hinbekommen.
Wie wende ich sosnt den ActionListener an?

Mein Problem besteht jetzt darin, das in der Textzeile unten die momentanen Mauskoordinaten angezeigt werden sollen.

Ich benutze dazu den MouseMotionListener:
Java:
class MK extends JTextField{
		
		public MK(){
			addMouseMotionListener(new MyListener());
		}
			class MyListener implements MouseMotionListener {
					public void mouseDragged(MouseEvent e) {	
					}
					public void mouseMoved(MouseEvent e) {
						setText(Event.MOUSE_MOVE);
GEHT NICHT!Gehtz anders?
						
					}
			}
	}
 
Zuletzt bearbeitet:

Eule

Mitglied
Was geht jetzt genau nicht? Ich steige durch deinen 1. Code nicht durch, aber so lass ich es mir in meinem Programm anzeigen:

Java:
public class WorkspacePostionListener extends MouseMotionAdapter{
		@Override
		public void mouseMoved(MouseEvent e) {
			if(controlPanel != null) {
				textFelt.setText(e.getX(), e.getY());
				Hauptfenster.updateUI();
			}
		}
	}
 
G

Gast2

Gast
Du brauchst nicht für jede Komponente eine eigene Klasse um Listener hinzufügen.
Java:
JButton button = new JButton("Listener");
button.addActionListener(DeinListern oder anonymenListener);

du kannst eine eigene Komponente machen wenn Sie etwas besonderes macht z.B. es gibt kein DropDownButton in Swing usw.
da kannst du dann die process methoden überschreiben und brauchst keine Listener registieren find ich unschön wenn eine Komponente auf sich selber einen Listener zu registieren.
 

mamelinchen

Bekanntes Mitglied
Daanke!

Zeigt soweit die Koordinaten an!

Mein Problem besteht darin, das ich
protected ButtonField buttonfläche;
protected ColorField colorfläche;
protected JTextField koordinatenfeld;

habe ,die eingebettet sind in ein JPanel.

Nun weiss ich nicht wie ich das realisieren soll, das er mir nur die Koordinaten zeigt, wenn ich auf ButtonField buttonfläche,ColorField colorfläche und JTextField koordinatenfeld zeige, bzw. die Maus bewege.Ich brauche ja noch ein dadrüberliegendes Panel oder Label, welches das MouseEvent feuert!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Button Event nur einmal ausführen AWT, Swing, JavaFX & SWT 3
O FlowLayout Button Event zuweisen? AWT, Swing, JavaFX & SWT 7
H Button Event AWT, Swing, JavaFX & SWT 9
S Button was für eine Event (SWT) AWT, Swing, JavaFX & SWT 2
M JFileChooser Button Event ändern.... AWT, Swing, JavaFX & SWT 12
Juelin in javafx Event auslösen AWT, Swing, JavaFX & SWT 4
G Mouse Event in anderemm Event auslösen AWT, Swing, JavaFX & SWT 50
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
J CheckBoxListCell auf click event in listView reagieren AWT, Swing, JavaFX & SWT 1
W JavaFX Etwas Tabellenartiges + Cell-Content-Changed-Event (o.ä.) AWT, Swing, JavaFX & SWT 30
O Swing Event Dispatch Thread AWT, Swing, JavaFX & SWT 1
B Swing Windowbuilder Rückgabewert im Event AWT, Swing, JavaFX & SWT 3
Z Befehl Action Event Verlassen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
Pr0m3theus Animation nach Event AWT, Swing, JavaFX & SWT 6
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
Sugan Swipe Event? AWT, Swing, JavaFX & SWT 8
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
H Event Handling JavaFx - auf Event warten AWT, Swing, JavaFX & SWT 4
G Event Handling Event Handling in eigene Klasse AWT, Swing, JavaFX & SWT 4
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
T Internes Event-handling in TextField/JTextField AWT, Swing, JavaFX & SWT 2
M Swing OnLoad-Event o. Ä. AWT, Swing, JavaFX & SWT 3
D Event Handling in Komplexen Anwendungen AWT, Swing, JavaFX & SWT 9
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
J Swing JMenuItem-Event?? AWT, Swing, JavaFX & SWT 3
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
A Mouse event und exit on close AWT, Swing, JavaFX & SWT 11
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
F Event Handling AWT, Swing, JavaFX & SWT 7
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
T Callback vs. Event listener AWT, Swing, JavaFX & SWT 7
F Frage zu Event KeyTyped bei jPanel AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
T Anzahl Event Listeners AWT, Swing, JavaFX & SWT 4
A Swing JButton int im Event AWT, Swing, JavaFX & SWT 9
G Swing Onkeyup Event AWT, Swing, JavaFX & SWT 3
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
P Swing Event das ausgelöst wird, sobald Änderung der Größe Abgeschlossen ist AWT, Swing, JavaFX & SWT 4
A Shift-Tab-Event auslösen AWT, Swing, JavaFX & SWT 5
T Event Dispatch Thread und noch ein Thread AWT, Swing, JavaFX & SWT 7
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
A Probleme mit dem KeyReleased-event AWT, Swing, JavaFX & SWT 3
J Doppelklick Event AWT, Swing, JavaFX & SWT 32
jueki Event bei Änderung der Spaltenbreite in einem JTable AWT, Swing, JavaFX & SWT 15
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
N Swing JComboBox Event Problem AWT, Swing, JavaFX & SWT 5
M JTree => Event Dispatching Error AWT, Swing, JavaFX & SWT 2
D Event in Fenster ausgeben + Observer + kein Plan AWT, Swing, JavaFX & SWT 2
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
H KeyUp-Event/Ereignis AWT, Swing, JavaFX & SWT 6
C Event Frage AWT, Swing, JavaFX & SWT 7
M Swing WindowListener -> Event abbrechen? AWT, Swing, JavaFX & SWT 2
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
R JTextField - Event bei jedem Buchstaben AWT, Swing, JavaFX & SWT 2
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
M Actionlistener ohne Event -.-?! AWT, Swing, JavaFX & SWT 2
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5
D PropertyChangeListener Event auswertung AWT, Swing, JavaFX & SWT 7
J remove() components bei event von JComboBox AWT, Swing, JavaFX & SWT 2
I event AWT, Swing, JavaFX & SWT 6
G Swing JFileChooser Event für neue Directory? AWT, Swing, JavaFX & SWT 5
X Checkboxen erstellt mit MouseClicked event AWT, Swing, JavaFX & SWT 10
Dragonfire Swing One componentResized Event AWT, Swing, JavaFX & SWT 14
data89 Was mache ich mit "Dispatched Event Thread"/Substance falsch? AWT, Swing, JavaFX & SWT 4
Kr0e Event simulieren AWT, Swing, JavaFX & SWT 5
S Tastatur Event auserhalb des fokuses aufnehmen AWT, Swing, JavaFX & SWT 4
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
B Wie kann ich ein event wieder beseitigen AWT, Swing, JavaFX & SWT 2
R Checkboxen - Event mit Controller abfangen AWT, Swing, JavaFX & SWT 7
Spin Window Event Beispiel AWT, Swing, JavaFX & SWT 6
O Tabelle über Event sortieren AWT, Swing, JavaFX & SWT 4
Iron Monkey JTable 2 Selektionsfarben Mouse-Event AWT, Swing, JavaFX & SWT 8
Dragonfire JTree, Selection via event AWT, Swing, JavaFX & SWT 7
K JButton auf JPanel in JTable (Darstellungs-/Event-Probleme) AWT, Swing, JavaFX & SWT 16
B JInternalFrame resize event AWT, Swing, JavaFX & SWT 2
E Komponenten in Event Dispatch Thread erzeugen? AWT, Swing, JavaFX & SWT 4
D Event beim Laden eines JPanels? AWT, Swing, JavaFX & SWT 3
O Action Event auslösen bei unbekanntem JTextField AWT, Swing, JavaFX & SWT 3
R Registrieren um Event abzufangen AWT, Swing, JavaFX & SWT 3
N solange Maustaste gedrückt Event AWT, Swing, JavaFX & SWT 15
Daniel_L Nachrichten/Event aus nicht-modalen Dialogen abfragen? AWT, Swing, JavaFX & SWT 4
G Event an einer JComboBox registrieren AWT, Swing, JavaFX & SWT 8
S Welches Event beim ändern einer Zelle in einer JTable AWT, Swing, JavaFX & SWT 4
S Welches Event beim auswählen einer Zelle? [JTable] AWT, Swing, JavaFX & SWT 3
A Event von Login zu Main klasse AWT, Swing, JavaFX & SWT 2
E bei gedrückte Taste --> Bitte nur ein Event auslösen AWT, Swing, JavaFX & SWT 4
W Kein MouseKlick-Event bei Bewegung AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben