Zum Inhalt springen

JTextField - Eingaben eingrenzen & Listener


Empfohlene Beiträge

Geschrieben

Morgen!

Ich bräuchte wieder mal Hilfe :D

und zwar würd ich gern die Eingabe beim JTextField auf ein Zeichen minimieren und dieses Zeichen sollte zwischen 0 bis 9 liegen... kann mir da jemand helfen :confused:

Außerdem würde ich gern einen Listener implementieren aber ich weiß nicht welchen ich brauche :confused: und zwar hab ich 3 TextFields und nach jeder Eingabe in einem JTextField soll mir die Summe der drei Automatisch berechnet und und in einem anderen (4tes Textfeld) ausgegeben werden welchen Listener könnt ihr mir empfehlen :confused:

Vielen Dank im voraus!

Geschrieben

Hmm für die bestimmte Formatierung würd ich dir ein JFormattedTextField ans Herz legen. Da kann man sowas recht einfach realisieren

Und für die Listener Geschichten einen KeyAdapter und eine Methode davon überschreiben (keyPressed, keyReleased, keyTyped).

Kannst ja rumprobieren welche davon am sinnvollsten ist

grz

Geschrieben

KeyListener key = new KeyListener(){

public void keyTyped(KeyEvent e)

{


}

public void keyPressed(KeyEvent arg0)

{


}

public void keyReleased(KeyEvent arg0)

{


}

};

Den Keylistener hab ich nun hin gekriegt aber des TextFeld auf eine Zahl zu begrenzen hab ich nicht hin bekommen :(

Geschrieben

Guckst du...


new JFormattedTextField(new MaskFormatter());

und dem Maskformatter gibst du noch String mask mit dafür gilt

private static final char DIGIT_KEY = '#';

private static final char LITERAL_KEY = '\'';

private static final char UPPERCASE_KEY = 'U';

private static final char LOWERCASE_KEY = 'L';

private static final char ALPHA_NUMERIC_KEY = 'A';

private static final char CHARACTER_KEY = '?';

private static final char ANYTHING_KEY = '*';

private static final char HEX_KEY = 'H';

Geschrieben

Also ich habs hier mal versucht aber...

JFormattedTextField tf = new JFormattedTextField(new MaskFormatter(DIGIT_KEY));

dann kommt nur die Fehlermeldung

"The constructor Maskformatter(char) is undefined" und

"The constructor JFormatted(MaskFormatter) is undefined" :confused:

Geschrieben

JFormattedTextField tf = new JFormattedTextField(new MaskFormatter("#"));
Fehlermeldung: "Unhandled exception type parseException"
import javax.swing.JFormattedTextField;

import javax.swing.text.MaskFormatter;


public class test 

{

	public static void main(String [] args)

	{

		JFormattedTextField tf = new JFormattedTextField(new MaskFormatter("#"));

	}

}

so viel kann ich garnicht falsch machen weil bis jetzt nur des drin steht darum frag ich mich wie es bei dir gehen kann und bei mir nicht :confused:

Geschrieben

Weil ich eclipse hab und der beim coden ohnehin gemeckert hat

dass parseexception geworfen wird

also heißt das für uns:


try{

     //Jformattedtextfield initialisieren

}catch(ParseException e){

    //fang mich

}

Geschrieben

Jetzt komm ich nimmer mit :confused:

try

{

JFormattedTextField tf = new JFormattedTextField(new MaskFormatter("#"));

}

catch(ParseException e)

{


}

meinst du so?

Allerdings bringt eclipse bei mir immer noch ne Fehlermeldung mit der ich nichts anfangen kann :(

Geschrieben

ja so mein ich das.

wichtig ist das textfeld ausserhalb des try blocks

zu deklarieren und im block zu initialisieren

damit du das danach noch verwenden kannst

(dürfte klar sein)

so hab ich das vorhin probiert

und so hat das auch funktioniert

was wär na jetzt noch?

Geschrieben

@Java_Neuling

Ein gut gemeinter Rat (...im Sinne von konstruktiver Kritik, nicht im Sinne von bösen Anschuldigungen, versteht sich...)

Ich habe den Eindruck, du solltest dich nochmal eingehend mit den Grundlagen der Java-Welt beschäftigen. Im günstigsten Fall hättest du noch von der Entwicklung von GUIs abgesehen. Wenn ich mich an meine Anfangszeit erinnere, waren da nur irgendwelche Ausgaben auf der Commandline und Eingaben von der selbigen.

Exception-Handling ist ein unausweichliches Grundkonzept in der Entwicklung mit Java. Die scheint dir noch nicht so richtig bewusst zu sein, so scheint mir.

Beginne an der Wurzel mit einer Programmiersprache (Grundlagen), nicht an der Spitze (z.B. GUI)!

Des Weiteren habe ich das Gefühl, dass du grundsätzlich arge Probleme mit der Beschreibung deiner Probleme hast. Immer wieder scheinen helfende Forumsleser nachfragen zu müssen, wo deine Probleme liegen. Du solltest stets darauf achten, dass die Leser dieses Forums nicht sehen, was du siehst, nicht denken, was du denkst und auch nicht wissen, was du weißt.

Zu schreiben, dass noch immer eine Fehlermeldung erscheint, mit der du nichts anfangen kannst, wird demnach niemand hier lösen können, ohne von dir noch zu erfahren, um welche Meldung es sich in welchem Kontext überhaupt handelt.

Versetze dich also immer (!) in die Lage der Forumsleser, die dein Problem nicht kennen. Mit anderen Worten: Stell dich doof. Tu mal so, als ob du nicht die geringste Ahnung von dem hast, worum es in deinen Forumsbeiträgen geht. Lies deine Beiträge (noch vorm Abschicken, also in der Vorschau) durch, am besten mehrfach.

Du wirst an manchen Stellen sicher schnell feststellen, dass Fragestellungen á la "Ich brauche Hilfe" nicht sehr aussagekräftig sind. Ferner wirst du dir selbst die Frage stellen: "Was will dieser Java_Neuling eigentlich und welches Problem hat er nun genau?"

Also.... Probleme beschreibt man im Ideallfall wie folgt: Zusammenfassen, woran man überhaupt erstmal arbeitet. Anschließend darauf eingehen, woran man im Detail arbeitet (die Stelle, an der sich das Problem ergab, ohne das Problem selbst zu schildern). Dann erst eine genaue Beschreibung deines Problems machen (Welcher Fehler tritt unter welchen Umständen in welcher Form auf? Was genau funktioniert nicht? etc.). Daraufhin wird geschildert, was bereits alles unternommen wurde, um Abhilfe zu schaffen (Stichwort: Eigeninitiative). Im Anschluss dein Gesuch zusammenfassen, um dem Leser kurz und bündig nochmal die eigentliche Frage vor Augen zu führen.

Vor allem aber solltest du eines bereits im Vorhinein erledigt haben: Suche selbst in den Weiten des Internets sowie auch in diesem Forum nach der Lösung eines ähnlichen oder gar des gleichen Problems. Lies dich schlau, ehe du dich an uns wendest! Es gibt hunderte von erstklassigen Tutorials, Hilfestellungen und Dokumentationen auf dieser Welt, die dir sehr viel schneller eine Lösung hätten bieten können, als es dieses Forum jemals könnte.

So wäre beispielsweise die Frage nach der Meldung "Unhandled Exception" nicht nötig gewesen, ja sogar die Frage nach der Arbeit mit formatierten Textfeldern.

Das Bild, welches ich bislang von dir vor Augen habe ist, dass du bei jedem Pups jemanden fragen willst, anstatt selbst mal zu schauen, was getan werden könnte/sollte. Gewöhne dir an, die Alternativen eines Forums zu nutzen. (Das soll keinesfalls heißen, dass du nie wieder im forum etwas fragen sollst! Das sollst du nur in denjenigen Fällen, in denen du wirklich keine Lösung findest - nirgends.)

Bitte fasse diese "Standpauke" von mir nicht böse auf. Die ist echt lieb gemeint. Würde ich es böse mit dir meinen, hätte ich ganz sicher nicht die Zeit geopfert, so viel Text zu schreiben. Darüber hinaus hätte ich auch ganz andere Worte gefunden, um dir obigen Standpunkt klar zu machen. Betrachte es folglich als einen Wink mit dem Zaunpfahl.

In diesem Sinne. Ändere deine Arbeitsweise ins Positive! :)

Back2Topic...

Zu guter Letzt noch zwei Worte zum Thema: Swing Tutorial

Ja, das geht auch genauer: Formatted Textfield

Ergänzend noch Folgendes: visuelle Übersicht der Swing-Komponenten

Geschrieben

Ok die "Ohrfeige" hab ich wahrscheinlich sogar wirklich verdient... aber eins muss ich zu meiner Verteidigung sagen des meiste was ich hier gepostet hab war wegen der Arbeit weil ich ne Oberfläche schreiben sollte und keine Ahnung von Oberflächen hatte, wie dir schon richtig aufgefallen ist... naja jetzt kann ich nur noch deinen Rat befolgen und hoffen das es besser wird ;) eine frage hätt ich noch wenn du erlaubst :) kennst du vllt paar gute OpenBooks für mich um mich da bisschen hinein zu vertiefen :confused:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...