Prüfen welches JTextfield ausgewählt/selektiert ist?

herold

Mitglied
Nabend zusammen,

bin gerade am verzweifeln wie ich herausfinden kann, welches JTextField selektiert ist!
Hab natürlich dann mal ein wenig gegooglet. Einer sagt es geht mit:
-MouseListerner ... der andere ...
-FocusListerner ... naja alle guten dinge sind drei also sollte es auch mit
-JTextField.isCursorSet() gehen

So...dann hab ich mich mal ran gemacht und die Doku zu der MouseListern sowie Focus (sind sich ja sehr ähnlich vom aufbau) zu lesen und aus zu probieren!

Java:
JTextField biniches = JTextField();
JTextField oderich = JTextField();


biniches.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
     mouseFlag_biniches = true;
     mouseFlag_oderich  = false;
}
});

oderich .addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
     mouseFlag_oderich = true;
     mouseFlag_biniches  = false;
}
});


if(mouseFlag_oderich) {
//klappt / und umgekehrt
}
else if(mouseFlag_biniches ) {
//klappt nicht / und umgekehrt
}

Klappt auch soweit. Nur bei meinem Fall nicht so wirklich!

Mein Fall:
Ich habe mir ein Zifferblock erstellt (0-9) alles JButtons.
Danach habe mit switch (case 0 - 9) die Actions (ActionListerner) abgefangen und die Ziffer in das jeweilige (SELEKTIERTE) Feld die Ziffer geschrieben. Ho ho....! Seltsamerweise klappt das auch so halbwegs.

Ich wähle das JTextField EINS aus und drücke dann auf den JButton (zahl) 1. Tut sich nichts.
Dann klick nochmal in das Feld EINS rein und wieder die zahl 1 (button) => klappt.

Klicke ich in das JTextField ZWEI und drücke danach den JButton (zahl) 1 klappt das sofort aber nicht mit den anderen zahlen 0,2-9. Erst wenn ich alle Buttons mal durch geklickert habe, funktioniert es einwandfrei.....

Mit FocusListerner hatte ich übrigends das gleiche..


Bei isCursorSet hatte ich immer true beim TextField EINS, keine chance beim ZWEITEN was rein zu ballern.

Vielleicht kann mir ja jemand helfen, danke! :)
 
Zuletzt bearbeitet:

Cyborg

Aktives Mitglied
Der FocusListener sollte es doch tun ?

[Java]
private static class FocusListener implements java.awt.event.FocusListener {

javax.swing.JTextField textField;

public FocusListener(javax.swing.JTextField field) {
this.textField = field;
}

@Override
public void focusGained(FocusEvent e) {
textField.setText("Focus");
}

@Override
public void focusLost(FocusEvent e) {
textField.setText("Kein Focus");
}
}
[/code]

Java:
jTextField1.addFocusListener(new FocusListener(jTextField1));
jTextField2.addFocusListener(new FocusListener(jTextField2));
jTextField3.addFocusListener(new FocusListener(jTextField3));

NetBeansProjekt hab ich mal angehangen.
 

Anhänge

  • FocusListner.zip
    17,7 KB · Aufrufe: 0

Marco13

Top Contributor
Eine Klasse genau so zu nennen wie das Interface, das sie implementiert, ist... *räusper*... Ein anderer Name wäre vielleicht übersichtlicher.

@herold: Klingt strange und verworren - kann man dazu ein KSKB bauen?
 

herold

Mitglied
@Marco13

Na sicher :) Vielleicht kann man es dann leichter verstehen....

Hab den Code mal eben nachgebaut, bitte:

Java:
import java.awt.event.*;
import javax.swing.*;


public class tester {

	public static void main(String arg[]) {

		JFrame fFrame = new JFrame();
		fFrame.setSize(400,400);
		JPanel pPan = new JPanel();
		JTabbedPane tpTabbed = new JTabbedPane();
		
		
		final JTextField jText1 = new JTextField("", 30);
		final JTextField jText2 = new JTextField("", 30);
		
		//create the numblock
    	for(int i = 0 ; i <= 9 ; i++) {
    		
    		//create new button
    		final JButton btn = new JButton(String.valueOf(i));

    		btn.addActionListener(new ActionListener() {
					
    				String strTemp     = "";
    				boolean mouseFlag1 = false;
    				boolean mouseFlag2 = false;
    				
    				@Override
					public void actionPerformed(ActionEvent e) {
						// TODO Auto-generated method stub
						switch(Integer.parseInt(btn.getText())) {
	        				case 0: 
	        					jText1.addMouseListener(new MouseAdapter() {
	        						public void mousePressed(MouseEvent me) {
	        							mouseFlag1 = true;
	        							mouseFlag2 = false;
	        						}
	    						});
	    						
	        					jText2.addMouseListener(new MouseAdapter() {
	        						public void mousePressed(MouseEvent me) {
	        							mouseFlag2 = true;
	        							mouseFlag1 = false;
	        						}
	    						});			                						
	    					
	    						if(mouseFlag1) {
	    							strTemp = jText1.getText();
	    							jText1.setText(strTemp+"0");			                							
	    						}
	    						else if(mouseFlag2) {
	        						strTemp = jText2.getText();
	        						jText2.setText(strTemp+"0");			                							
	    						}
	    					    break;
	    					    
	        				case 1: 
	        					jText1.addMouseListener(new MouseAdapter() {
	        						public void mousePressed(MouseEvent me) {
	        							mouseFlag1 = true;
	        							mouseFlag2 = false;
	        						}
	    						});
	    						
	        					jText2.addMouseListener(new MouseAdapter() {
	        						public void mousePressed(MouseEvent me) {
	        							mouseFlag2 = true;
	        							mouseFlag1 = false;
	        						}
	    						});			                						
	    					
	    						if(mouseFlag1) {
	    							strTemp = jText1.getText();
	    							jText1.setText(strTemp+"1");			                							
	    						}
	    						else if(mouseFlag2) {
	        						strTemp = jText2.getText();
	        						jText2.setText(strTemp+"1");			                							
	    						}
	    					    break;	    					    
						}
					}
    			
    			}
    		);
    		
    		//add button the tab
    		pPan.add(btn);
    	}
    	
    	pPan.add(jText1);
    	pPan.add(jText2);
    	tpTabbed.addTab("Test", pPan);
    	fFrame.add(tpTabbed);
    	fFrame.setVisible(true);
	}
}

Class -> tester;

So, dann startest du mal das ganze und selectierts das linke Feld. (Maus drauf klicken).
Dann drückst du mal den Button 0. Richtig, tut sich nichts!

Jetzt klickst du nochmal das in das Linke Feld und drückst wieder den Button 0. Geht einwandfrei, stimmts? :)
Jetzt kannst du auch problems in das Rechte Feld schreiben mit BTN 0. ABER NUR 0!

Versuchs mal mit BTN 1, da muss man wieder 2x selektieren.

P.S. Hab jetzt nur BTN 0 + BTN 1 aktiviert, da mir noch nichts eingefallen ist wie ich das ganze in eine externe Klasse packen könnte *g*

Dann GoodLuck =)
 

herold

Mitglied
Naja ist doch klar.

Klickt man in TextFeld 1, soll er alle Ziffern 0-9 direkt da rein ballern und umgekehrt.

Aber ich struktier das ganze sowie so gerade neu (objektorientiert) danach schau ich mir das nochmal genauer an und überlege nochmal.

Eine einfachere Lösung gibt es wahrscheinlich nicht oder?
 

Marco13

Top Contributor
Och, doch, sicher... eine könnte sein, mit EINEM FocusListener (also wirklich einer Instanz eines FocusListeners), der an beiden TextFields hängt, quasi "mitzuprotokollieren" welches TextFeld zuletzt ausgewählt wurde, und die Buttons immer in dieses, zuletzt gewählte, reinschreiben zu lassen. Wenn's nicht klappt kann ich später nochmal schauen, sollte nicht so aufwändig sein.
 

herold

Mitglied
Sooo! :) Geschafft. Alles läuft wie es soll!

Hab mir jetzt erstmal eine Klasse gebaut die alles mit JTextField, JFrame, JButton, etc. verwaltet gebaut und dazu eine Event bzw. Action-Klasse.

Jetzt adde ich einfach meine Buttons mit den Ziffern und geb den Buttons eine Action (z.B. TextField.setText(textDavor + neuen wert). :)

Klappt alles, man braucht nur erstmal den Überblick im eigenen Code *g*

VIELEN DANK, klasse Forum :)


Hier mal ausschnitte:

Verwaltungs-Klasse für J-Componenten
fügt dem ausgewählten Panel den Zifferblock (touchblock) hinzu mit allen buttons + action
Java:
this.addTouchBlock(InfoPanel);


Verwaltungs-Klasse für J-Componenten
Hier sieht man die erstellen und vergabe der Action
Java:
public void addTouchBlock(JPanel panel) {
		
		this.setButtonStyles("Grid", "14", "BOLD");
		this.setGridLayoutSettings(5, 1);
		
for(int i = 0 ; i <= 9 ; i++) {
       this.addButtonToPanel(String.valueOf(i), panel, this.getButtonStyles(), 0, this.getGridLayoutSettings(), CarC_Action.getAction_TouchBlock(i));
}
	}


Action-Klasse
Java:
		public ActionListener getAction_TouchBlock(final int ziffer) {
	        //create action handler for BoardCom
			ActionListener Action_TouchBlock = new ActionListener() {
	            public void actionPerformed( ActionEvent e ) {
	            	
	            	String strValue = CarC_Display.activeText.getText()+String.valueOf(ziffer);
	            	CarC_Display.activeText.setText(strValue);
					System.out.println("touch me"+ziffer);
	            }
	        };	
	        
	        return Action_TouchBlock;
		}

:)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
I Auf vollen Monat prüfen? Java Basics - Anfänger-Themen 22
A Dateiname auf Vorkommen prüfen Java Basics - Anfänger-Themen 29
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
B Prüfen, ob Zeit Überschreitung Java Basics - Anfänger-Themen 2
B Sudoku prüfen Java Basics - Anfänger-Themen 13
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
X Array auf Leerstellen prüfen Java Basics - Anfänger-Themen 1
FelixN Prüfen, ob ein 2D-Array rechteckig ist Java Basics - Anfänger-Themen 42
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
B Prüfen, ob Country Code in Europa ist? Java Basics - Anfänger-Themen 24
L Prüfen ob Fax (Tif-Datei) vollständig angekommen ist Java Basics - Anfänger-Themen 15
O Datenstruktur auf SET prüfen in O(n) Java Basics - Anfänger-Themen 32
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
B Prüfen, ob Datum2 der gleiche Tag ist wie Datum1 Java Basics - Anfänger-Themen 10
Dimax Erste Schritte String Eingabe Prüfen Java Basics - Anfänger-Themen 11
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
S Array doppelter Wert prüfen Java Basics - Anfänger-Themen 7
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
K Linux Speicherplatz mit Java prüfen Java Basics - Anfänger-Themen 4
O Array nach gleichen Zahlen prüfen und ausgeben Java Basics - Anfänger-Themen 6
G Compiler-Fehler Auf Anagramm prüfen Java Basics - Anfänger-Themen 1
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Input/Output Prüfen wie oft etwas eingegeben wurde Java Basics - Anfänger-Themen 2
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
M Erste Schritte Java prüfen ob eine der Möglichkeiten erfüllt ist Java Basics - Anfänger-Themen 2
R Auf Nachkommastellen prüfen. Java Basics - Anfänger-Themen 2
P Argumente auf plausibilität prüfen... Java Basics - Anfänger-Themen 8
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
Tommy Nightmare Variable auf mehrere Ungleichheiten prüfen Java Basics - Anfänger-Themen 18
B String mit Emailadresse prüfen Java Basics - Anfänger-Themen 11
E 2D Arrays auf Ungleichheit prüfen! Java Basics - Anfänger-Themen 5
MrSnake Prüfen ob TitledPane schon besteht Java Basics - Anfänger-Themen 2
B Serial Key prüfen -> String mit privatem Key und dann abgleichen; Summe = 0 Java Basics - Anfänger-Themen 8
N Compiler-Fehler Iban prüfen Java Basics - Anfänger-Themen 7
J Prüfen ob Arrays nur mit einem Wert belegt sind Java Basics - Anfänger-Themen 3
M String prüfen Java Basics - Anfänger-Themen 7
E Prüfen ob Sammlung gesetzt wurde - Lebensmittelsammlung Java Basics - Anfänger-Themen 8
H Zufällig generierte Zahlen auf Eingabe prüfen Java Basics - Anfänger-Themen 5
S Prüfen ob bestimmter Ordner geöffnet ist (Windows XP) Java Basics - Anfänger-Themen 5
Ruvok Prüfen ob bestimmtest Element existiert im Array Java Basics - Anfänger-Themen 11
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
S String auf Pallindromeigenschaft prüfen Java Basics - Anfänger-Themen 15
AssELAss Datums-Objekt prüfen ob im gleichen Monat? Java Basics - Anfänger-Themen 5
Screen Input/Output Wie prüfen ob Stream1 in Stream2 enthalten ist (on-the-fly) ? Java Basics - Anfänger-Themen 5
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
I Prüfen ob Webseite existiert Java Basics - Anfänger-Themen 3
Z Inputs prüfen Java Basics - Anfänger-Themen 6
G Textdatei auf Dubletten prüfen Java Basics - Anfänger-Themen 8
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K zwei Rechtecke auf Berührung prüfen Java Basics - Anfänger-Themen 2
G String auf Format prüfen Java Basics - Anfänger-Themen 3
J Eingabewert übergeben und prüfen von showInputDialog Java Basics - Anfänger-Themen 4
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
S Array befüllen & auf doppelte werte prüfen Java Basics - Anfänger-Themen 6
M Prüfen, ob Zeichen eine Zahl ist Java Basics - Anfänger-Themen 3
M Punkt auf eine Farbe prüfen Java Basics - Anfänger-Themen 8
C Datentypen Prüfen of eine Zahl Quadratzahl ist Java Basics - Anfänger-Themen 2
K Eindimensionalen Array prüfen Java Basics - Anfänger-Themen 5
M Konstruktor auf null prüfen, Arrays Java Basics - Anfänger-Themen 9
O Prüfen ob ein String den selben Namen hat wie eine Booleanreihe? Java Basics - Anfänger-Themen 17
J Arrays prüfen und über if Bedingung ausgeben Java Basics - Anfänger-Themen 15
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
L Erste Schritte Einträge in ArrayList prüfen Java Basics - Anfänger-Themen 4
S OOP long prüfen Java Basics - Anfänger-Themen 5
H Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird Java Basics - Anfänger-Themen 13
L Eine ArrayList auf gleiche Inhalte prüfen Java Basics - Anfänger-Themen 10
Rayo Eingelesene Ascii Zahlen wie normale Zahlen prüfen Java Basics - Anfänger-Themen 4
K HashMap auf leere Key-Value-Paare prüfen Java Basics - Anfänger-Themen 14
N Prüfen ob Objekt existiert Java Basics - Anfänger-Themen 6
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
A Prüfen ob Datei existiert Java Basics - Anfänger-Themen 9
G Verfügbare Clients prüfen ohne ping Java Basics - Anfänger-Themen 12
P JSP Werte übergeben und prüfen Java Basics - Anfänger-Themen 4
A Anfängerfrage: Zahlformat prüfen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben