Button-Registrierung beim ActionListener erst NACH Tastendruck

  • Themenstarter Gelöschtes Mitglied 36296
  • Beginndatum
G

Gelöschtes Mitglied 36296

Gast
Hallo zusammen,

ich habe ein kleines Problem.
Ich habe ein JFrame in dem 3 Spalten sind (siehe 1. Foto).
Mit dem New-Button wird das Fenster um eine Zeile erweitert (siehe 2.Foto)
jetzt hätte ich gerne, dass die beiden Buttons (Rename und Delete) der neuen Zeile, erst nachdem der name in das textfeld eingegeben und mit enter bestätigt wurde, registriert werden. Der Grund ist, dass ich die Buttons (da sich die Anzahl verändern können muss) in einer LinkedList habe. Da ich den Index, wo die Buttons dann angehängt werden nicht kenne, muss ich mit getLast() darauf zugreifen. Daher dürfen die Buttons erst nach dem ENTER-Drücken registriert werden, da sonst die Buttons eine stelle davor erneut registriert werden, was ich nicht brauche.

Hier noch ein wenig Quellcode:
Java:
private void buttonRegister() {
		ok_button.addActionListener(this);
		cancel_button.addActionListener(this);
		new_button.addActionListener(this);
		newFund_textfield.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				Object o = e.getKeyCode();

				if (o.equals(KeyEvent.VK_ENTER)) {
					String s = newFund_textfield.getText();
					rename_delete_panel.remove(newFund_textfield);
					labels.add(new JLabel(s));
					rename_delete_panel.add(labels.getLast());
					rename_buttons.add(new JButton("Rename"));
					rename_delete_panel.add(rename_buttons.getLast());
					delete_buttons.add(new JButton("Delete"));
					rename_delete_panel.add(delete_buttons.getLast());
					delete_buttons.getLast().addActionListener(this);//<--
					rename_buttons.getLast().addActionListener(this);//<--
//Die beiden vorherigen Zeilen mag er nicht, da er das "this" dann nicht kennt...
//Das ist mein Problem, das es zu lösen gilt... ;)
					repaint();
					pack();
				}
			}
		});

...

	@Override
	public void actionPerformed(ActionEvent e) {
		Object o = e.getSource();

		if (o.equals(ok_button)) {
			dispose();

		} else if (o.equals(new_button)) {
			rename_delete_panel.add(newFund_textfield);
			newFund_textfield.setText("new Name");
			newFund_textfield.selectAll();
			newFund_textfield.updateUI();

		} else if (o.equals(cancel_button)) {
			dispose();

		} else {
			for (int i = 0; i < labels.size(); i++) {
				if (o.equals(rename_buttons.get(i))) {
					rename.setTextFieldText(labels.get(i).getText());
					rename.setVisible(true);
					index = i;
					break;
				} else if (o.equals(delete_buttons.get(i))) {
					rename_delete_panel.remove(labels.get(i));
					rename_delete_panel.remove(rename_buttons.get(i));
					rename_delete_panel.remove(delete_buttons.get(i));
					rename_buttons.remove(i);
					delete_buttons.remove(i);
					labels.remove(i);
					break;
				}
			}

		}
		repaint();
		pack();
	}


Im dritten Bild sieht man, dass nachdem der Name mit enter bestätigt wurde, die beiden Buttons (Rename und Delete) dahinter auftauchen, nur leider ohne beim ActionListener registriert zu sein...

Wäre es eventuell möglich das registrieren unten in der actionPerformed(..) zu machen und es irgendwie so zu machen, dass die actionPerformed(..) quasi auf das ende der keyPressed(..)-Methode wartet?

BTW:
Vielleicht kann mir auch noch jemand sagen, ob es eine bessere Variante gibt, heruszufinden, welcher Button gedrückt wurde (letzerer Teil in der actionPerformed). (Die Rename-Buttons, die Delete-Buttons und die Labels sind in jeweils einer eigenen LinkedList)
Danke schon mal ;)

Boldi
 

Anhänge

  • Settings1.JPG
    Settings1.JPG
    26,7 KB · Aufrufe: 34
  • Settings2.JPG
    Settings2.JPG
    30,4 KB · Aufrufe: 42
  • Settings3.JPG
    Settings3.JPG
    28,8 KB · Aufrufe: 31
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Das liegt daran dass sich das this in deinem Fall auf die anonyme Klasse bezieht. Du kannst allerdings auch auf das this der anderen Klasse zugreifen:
Java:
delete_buttons.getLast().addActionListener(DeineKlasse.this);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
N Apache POI/ neue Reihe in Excel mit einem Button Allgemeine Java-Themen 2
S Swing Speichern nach Button-Klick Allgemeine Java-Themen 5
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
M itext - Button der Text in Zwischenablage stellt Allgemeine Java-Themen 0
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M JavaFX Button mit mehreren Aktionen? Allgemeine Java-Themen 7
G Drop down Button Menü (Combobox) Allgemeine Java-Themen 7
E Swing Buttons auf knopfdruck(anderer Button) erstellen Allgemeine Java-Themen 6
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
4 Swing Durch klicken auf Button Labels einem Panel hinzufügen Allgemeine Java-Themen 4
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
C Durch klicken von Button in GUI wird leeres Fenster geöffnet und nicht mein Spiel "Memory" Allgemeine Java-Themen 13
Tacofan Button nicht mehr anklickbar machen Allgemeine Java-Themen 8
L Nach Button drücken den Text festspeichern Allgemeine Java-Themen 9
J Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not) Allgemeine Java-Themen 6
F Klassen Klasse bei Button klick öffnen Allgemeine Java-Themen 11
J JScrollPane und Button erscheinen nicht Allgemeine Java-Themen 13
L Label- & Textfelderzeugung durch Button Allgemeine Java-Themen 1
M for Schleife mit Swing Button abbrechen Allgemeine Java-Themen 7
B Button im Web klicken Allgemeine Java-Themen 4
C Java Excel Button Allgemeine Java-Themen 2
J Swing Eigenes Button-design Allgemeine Java-Themen 2
H WAV abspielen nach Button-Klick Allgemeine Java-Themen 4
M JavaFX-Gegenstück zu Swing-Button-DoClick-Methode Allgemeine Java-Themen 5
A Button drücken Allgemeine Java-Themen 3
S Thread anhalten per Button ? Allgemeine Java-Themen 3
D Dialog soll sich beim Klick auf Button schließen Allgemeine Java-Themen 8
M HTTP Selenium button klicken Allgemeine Java-Themen 2
K GUI-Button Inhalte vergleich - TicTacToe Grundriss Allgemeine Java-Themen 11
X Button während Thread aktiv ist disablen Allgemeine Java-Themen 11
C Button geben Fehlermeldung aus Allgemeine Java-Themen 5
R Klasse über Button Event in anderer Klasse informieren Allgemeine Java-Themen 11
R [Android]Wie dynamischen Button-Feld erstellen? Allgemeine Java-Themen 3
F WebBrowser Button automatisch drücken Allgemeine Java-Themen 5
L mit Button jar.Datei öffnen? Allgemeine Java-Themen 5
1 URL mit Button öffnen Allgemeine Java-Themen 29
L Thread stoppen über Button funktioniert nicht Allgemeine Java-Themen 7
ModellbahnerTT Button mit Zahlen beschriften Allgemeine Java-Themen 1
E JTidy html "hidden" Button drücken Allgemeine Java-Themen 7
G Button-Array überschreiben und dem Container zufügen? Allgemeine Java-Themen 2
G Icon auf Button Allgemeine Java-Themen 5
N Button Allgemeine Java-Themen 3
G Schleife durch Button beenden Allgemeine Java-Themen 6
G wenn Button geklickt -> regelmäßig Aktion ausführen Allgemeine Java-Themen 7
G default button für enter taste Allgemeine Java-Themen 3
T JTabbedPane nach Button-Klick wechseln Allgemeine Java-Themen 3
E Button disablen Allgemeine Java-Themen 8
T Button Array verschieben klappt nicht. Allgemeine Java-Themen 6
T Button Action Allgemeine Java-Themen 10
G swt button Allgemeine Java-Themen 6
M Methode soll warten, bis Button gedrückt Allgemeine Java-Themen 2
P Button automatisch drücken Allgemeine Java-Themen 5
M bei Klick auf Button Datei einlesen Allgemeine Java-Themen 3
E Button mit 2zeiliger Beschriftung Allgemeine Java-Themen 3
ElViZ HTML-Button mit Java "drücken" lassen? Allgemeine Java-Themen 3
MQue Button setEnabled() Allgemeine Java-Themen 2
MQue Konzept- Frage zum Button-Aktualisieren Allgemeine Java-Themen 5
MQue Button Attribute setzen Allgemeine Java-Themen 14
MQue Button ansprechen Allgemeine Java-Themen 5
MQue Button erzeugen mit 3 Klassen Allgemeine Java-Themen 3
MQue Button mit Icon und Beschriftung Allgemeine Java-Themen 7
MQue Button Event beim drücken und beim auslassen Allgemeine Java-Themen 7
P JComponenten (Button, JSlider, usw) erweitern Allgemeine Java-Themen 12
E Button: Event auslösen Allgemeine Java-Themen 7
E Mit Button ein Fenster öffnen Allgemeine Java-Themen 4
D Cast schlägt fehl : Object[] zu Button[] Allgemeine Java-Themen 2
P invoke per button Allgemeine Java-Themen 5
D Button-Sprache und windowClosing Allgemeine Java-Themen 6
G Text und Bild/Icon im Label/Button positionieren/ausrichten Allgemeine Java-Themen 2
A Wie mach ich, das mein Button schneller reagiert. Allgemeine Java-Themen 13
D Bild per Button painten Allgemeine Java-Themen 5
V Button schließen - NullPointerException Allgemeine Java-Themen 6
H Button ist nicht ansprechbar Allgemeine Java-Themen 4
S 100 Fehler bei Button machen :) Allgemeine Java-Themen 9
G Fenster durch eigenen Button minimieren Allgemeine Java-Themen 6
X Registrierung eines Ecore-Models außerhalb der Eclipse-Umgebung Allgemeine Java-Themen 0
L Registrierung von Observer Allgemeine Java-Themen 4
A RMI class not found bei Registrierung Allgemeine Java-Themen 4
berserkerdq2 Weiß jemand wie ich im Scenebuilder das Fenster so darstellen kann, dass beim Vollbildmodus die Objekte so angezeigt werden? Allgemeine Java-Themen 1
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
B Mysteriöse Ergebnisse beim Baccarat Programm? Allgemeine Java-Themen 13
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
B Stringmanipulationen beim Dateinamen Allgemeine Java-Themen 8
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
Alex_99 Programm stürzt beim Aufruf der Funktion ab? Text ausgeben Allgemeine Java-Themen 45
J Mein Frame friert ein beim Uploaden Allgemeine Java-Themen 4
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
A Hilfe beim Verständnis Allgemeine Java-Themen 16
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
K Verbesserung der Laufzeit beim Sortieren von Einwohnern nach ihrem Geburtsjahr Allgemeine Java-Themen 0
B Compiler-Fehler Probleme beim Kompilieren mit Jsoup Allgemeine Java-Themen 8
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben