JOptionPane funktioniert nicht mit Abbrechen Knopf

REC

Bekanntes Mitglied
Habe hier folgendes Problem.Ich öffne ein
Java:
  JOptionPane pane = new JOptionPane(kartei,
                    JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_OPTION);
So ich will 2 Zahlen eingeben.Wenn ich nun auf den Abbrechen Knopf gehe oder das Fenster schliessen will,kommt eine Fehlermeldung:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "" .

So wie kann ich nun das umgehen.Egal wie!



Java:
class karteLöschenListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            JTextField posKartei = new JTextField();
            JTextField posKarte = new JTextField();

            Object[] kartei = { "Geben Sie die gewünschte Kartei ein ",
                    posKartei, "Geben sie die gewünschte Kartenposition ein ",
                    posKarte };

            JOptionPane pane = new JOptionPane(kartei,
                    JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_OPTION);
          
            
            pane.createDialog("Karte löschen").setVisible(true);
        
            int z = Integer.parseInt(posKartei.getText());
            int y = Integer.parseInt(posKarte.getText());
            logRef.karteLöschen(z,y);
    

        }

    }
 

XHelp

Top Contributor
Du überprüfst ob
Code:
posKartei.getText()
und
Code:
posKarte.getText()
gesetzt sind?
 

REC

Bekanntes Mitglied
Wie meinst du das?Wenn ich ja nichts eingeben will,oder nur ein Feld ausgefüllt habe,und ich entscheide mich dann um abbzubrechen,dann nützt mir es ja nichts die Textfelder zu überprüfen?
 

XHelp

Top Contributor
Naja, du bekommst die Exception weil egal ob du was eingegeben hast oder nicht versuchst du die Eingabe nach Integer zu parsen. Das musst du eben verhindern
 

REC

Bekanntes Mitglied
Sorry ich weiss nicht genau was du meinst.
Unsere Abgabetermin ist eben morgen Abend und wir wissen das wir deine Hilfe in letzter Zeit oft beansprucht haben,aber
kannst du mir nicht ein Code Beispiel schreiben?
 

eRaaaa

Top Contributor
Naja, erstens müsstest du überprüfen, ob eben wirklich nur Zahlen in dem Textfeld stehen(diese auch nicht leer sind) und zweitens ob "JA" geklickt wurde.

Codebeispiel? Möglich wäre so etwas:
Java:
		DocumentFilter filter = new DocumentFilter() {
			@Override
			public void replace(FilterBypass fb, int offset, int length,
					String text, AttributeSet attrs)
					throws BadLocationException {
				if (text.matches("\\d+")) {
					super.replace(fb, offset, length, text, attrs);
				}
			}
		};
		JTextField posKartei = new JTextField();
		((AbstractDocument) posKartei.getDocument()).setDocumentFilter(filter);
		JTextField posKarte = new JTextField();
		((AbstractDocument) posKarte.getDocument()).setDocumentFilter(filter);
		Object[] kartei = { "Geben Sie die gewünschte Kartei ein ", posKartei,
				"Geben sie die gewünschte Kartenposition ein ", posKarte };

		JOptionPane pane = new JOptionPane(kartei, JOptionPane.PLAIN_MESSAGE,
				JOptionPane.OK_OPTION);

		pane.createDialog("Karte löschen").setVisible(true);
		if (((Integer) pane.getValue()).intValue() == JOptionPane.OK_OPTION
				&& !posKarte.getText().isEmpty()
				&& !posKartei.getText().isEmpty()) {
			int z = Integer.parseInt(posKartei.getText());
			int y = Integer.parseInt(posKarte.getText());
			logRef.karteLöschen(z,y);
		}

:oops:
 

REC

Bekanntes Mitglied
Was soll denn das :oops: bitte bedeuten??

Wie du vielleich anhand meinen Fragen sehen kannst bin ich blutiger Anfänger.
Da nützten mir solche Codebeispiele herzlich wenig bei denn ich praktisch jedes Wort herausfinden muss was es heisst.
Bevor ich sowas schreibe,mach ich mir ein eigenes JFrame.

Ist es also nur so möglich ?
 

eRaaaa

Top Contributor
Ist es also nur so möglich ?


Nö, viele Wege führen nach Rom, nur was bitte willst du nun jetzt sonst noch hören? Codebeispiel gefällt dir nicht, aus den o.g. Erklärungen selbst den Code schreiben kannst/willst du anscheinend nicht...was bitte willst du nun hören?
Du könntest auch einen try-catch drumwickeln wenn du das besser findest :autsch:
Java:
JTextField posKartei = new JTextField();
		JTextField posKarte = new JTextField();
		Object[] kartei = { "Geben Sie die gewünschte Kartei ein ", posKartei,
				"Geben sie die gewünschte Kartenposition ein ", posKarte };

		JOptionPane pane = new JOptionPane(kartei, JOptionPane.PLAIN_MESSAGE,
				JOptionPane.OK_OPTION);

		pane.createDialog("Karte löschen").setVisible(true);
		if (((Integer) pane.getValue()).intValue() == JOptionPane.OK_OPTION) { //wurde JA geklickt?
			try{
				int z = Integer.parseInt(posKartei.getText());
				int y = Integer.parseInt(posKarte.getText());
				logRef.karteLöschen(z,y);
			}catch(NumberFormatException nf){
				System.out.println("Na, das war aber keine Zahl!"); //eingabe war keine zahl oder es wurde keine eingabe getätigt...
			}
		}
 

REC

Bekanntes Mitglied
Eigentlich nichts,ich wollte nur wissen ob es einen anderen Weg gibt.

Ok habe mir nochmal deinen oberen Code angeschaut.
An dieser Zeile war ich dran,aber ich bekam sie nicht hin.
Java:
 if (((Integer) pane.getValue()).intValue() == JOptionPane.OK_CANCEL_OPTION)

Ich schau jetzt mal im Web wegen der Überprüfung ob ein String oder int übergeben wurde.

Danke bis hierhin.
 

REC

Bekanntes Mitglied
Man ich komm einfach nicht vorwärts.

Wie komme ich an den "X"Knopf des JOptionPane.Mit dem WindowsListener geht das ja nicht.Dieser Schliess Knopf sollte ja das gleiche machen wie dann der Abbrechen Knopf
 

REC

Bekanntes Mitglied
Ja schliessen tut es schon aber es kommt der gleiche Fehler wie wenn ich vorher den abbrechen knopf gedrückt hatte.
Also dachte ich,ich muss mit dem WindowsListener die gleichen Schritten ausführen wie es jetzt der Abbrechen-Knopf macht
 

truesoul

Top Contributor
Also wie eRaaaa schon wunderbar gezeigt hat:
Nur eines fehlte noch, für den fall das einer auf X drückt.

Java:
if(pane.getValue() != null) // jetzt sollte keine Exception mehr kommen
   if (((Integer) pane.getValue()).intValue() == JOptionPane.OK_OPTION 
                && !posKarte.getText().isEmpty() // steht was in posKarte drin? 
                && !posKartei.getText().isEmpty()) { 
            int z = Integer.parseInt(posKartei.getText());
            int y = Integer.parseInt(posKarte.getText());
 

ARadauer

Top Contributor
Ja schliessen tut es schon aber es kommt der gleiche Fehler wie wenn ich vorher den abbrechen knopf gedrückt hatte.
Also dachte ich,ich muss mit dem WindowsListener die gleichen Schritten ausführen wie es jetzt der Abbrechen-Knopf macht

schon der gleiche, aber nicht aus dem selben grund. jetzt liegt es daran, dass der Rückgabe Wert von pane.getValue null ist... und von null kann man nicht intValue aufrufen

Java:
 if (pane.getValue() != null && ((Integer) pane.getValue()).intValue() == JOptionPane.OK_OPTION) { //wurde JA geklickt?

immer wenn eine nullPointerrException kommt, schau zuerst wo genau, schau dann wer drauf zugreift und schreib den code dann so um, dass niemand drauf zugrieft, wenns null ist
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
nbergmann The type JOptionPane is not accessible. Java Basics - Anfänger-Themen 4
nbergmann Wo ist javax.swing.JOptionPane gespeichert? Java Basics - Anfänger-Themen 4
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
M JOptionPane Fehler bei "Abbrechen" des Fensters Java Basics - Anfänger-Themen 10
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
Dawinartor Klassen Zeilenumbruch in JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 8
N javax swing JOptionPane Hilfe Java Basics - Anfänger-Themen 3
T JOptionPane mit eigenem Icon Java Basics - Anfänger-Themen 4
C JOptionPane tritt manchmal bei Plugin in den Hintergrund Java Basics - Anfänger-Themen 2
das_leon JOptionPane Titel setzen Java Basics - Anfänger-Themen 1
J jOptionPane, Array und negative Zahlen Java Basics - Anfänger-Themen 2
B JOptionPane Java Basics - Anfänger-Themen 5
S JOptionPane mit Schleife in einem Ausgabefenster Java Basics - Anfänger-Themen 4
M jOptionPane mit if else Java Basics - Anfänger-Themen 16
K JOptionPane/catch/try/finally/if Java Basics - Anfänger-Themen 9
B JOptionPane Java Basics - Anfänger-Themen 4
N Erste Schritte JOptionPane - zerstörtes Layout Java Basics - Anfänger-Themen 2
D Erste Schritte JOptionPane Java Basics - Anfänger-Themen 7
S JOptionPane/Popup mit GUI Java Basics - Anfänger-Themen 2
R Fehler mit JOptionPane Java Basics - Anfänger-Themen 3
A Fehler bei der Speicherung von JOptionPane-Eingaben Java Basics - Anfänger-Themen 4
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
L Strings in einem JOptionPane farbig Java Basics - Anfänger-Themen 2
E JOptionPane.showMessageDialog Fehler Java Basics - Anfänger-Themen 1
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
J while (eingabe == "0") eingabe = JOptionPane.showInputDialog("...") Java Basics - Anfänger-Themen 5
S Konsolenausgabe ales JOptionPane? Java Basics - Anfänger-Themen 5
Z Darstellungsfehler mit JOptionPane Java Basics - Anfänger-Themen 2
L Interface JOptionPane Umwandlung Java Basics - Anfänger-Themen 10
L Anderes Layout für JOptionPane? Java Basics - Anfänger-Themen 6
S JoptionPane mit Umbruch Java Basics - Anfänger-Themen 21
Eileen Brüche addieren in Zwei Klassen mit JOptionPane Java Basics - Anfänger-Themen 4
S JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 20
M JOptionPane 2 Angaben in ein Dialogfeld Java Basics - Anfänger-Themen 7
H JOptionPane YES Option mit Folge? Java Basics - Anfänger-Themen 2
P Input/Output JOptionPane Fehlermeldung Catchen Java Basics - Anfänger-Themen 5
N Grafiken in JOptionPane Java Basics - Anfänger-Themen 3
T Benutzereingabe in form von string wieder ausgeben in JOptionPane Java Basics - Anfänger-Themen 14
B Codeschnipsel-Frage zu JOptionPane Java Basics - Anfänger-Themen 4
D Problem mit meinem ersten JOptionPane - Fatal exception occurred. Program will exit. Java Basics - Anfänger-Themen 6
H Focus auf Textfeld in JOptionPane Java Basics - Anfänger-Themen 2
J JOptionPane wiederholt aufrufen Java Basics - Anfänger-Themen 2
M JOptionPane null on closing with X Java Basics - Anfänger-Themen 6
M GUI JOptionPane - Parameter im Konstruktor festlegen? Java Basics - Anfänger-Themen 5
brunothg Internal JOptionPane Icon ändern Java Basics - Anfänger-Themen 5
J CLOSE in JOptionPane Java Basics - Anfänger-Themen 7
S JOptionPane Java Basics - Anfänger-Themen 29
F Alternative zu JoptionPane Java Basics - Anfänger-Themen 7
M Datentypen JOptionPane Java Basics - Anfänger-Themen 13
D JOptionPane ohne Klick-Aufforderung Java Basics - Anfänger-Themen 9
F jOptionPane (ConfirmDialog) aufrufen Java Basics - Anfänger-Themen 2
E JOptionPane Java Basics - Anfänger-Themen 11
J JOptionPane Datum Eingabe Java Basics - Anfänger-Themen 3
H JOptionPane validieren Java Basics - Anfänger-Themen 3
D nur JOptionPane im Windows Style Java Basics - Anfänger-Themen 3
D Wählfenster(JOptionPane) Java Basics - Anfänger-Themen 3
N Hilfe!!! JOptionPane Java Basics - Anfänger-Themen 12
N javax.swing.JOptionPane einbauen? Java Basics - Anfänger-Themen 9
M Hilfe: JOptionPane.showInputDialog Java Basics - Anfänger-Themen 3
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
P JOptionPane.showInputDialog Java Basics - Anfänger-Themen 6
L ParentComponent von JOptionPane Java Basics - Anfänger-Themen 2
X JOptionPane.showMessageDialog(); - Import Befehl? Java Basics - Anfänger-Themen 4
C JOptionPane mit Icon Java Basics - Anfänger-Themen 5
G Problem mit JOptionPane. Java Basics - Anfänger-Themen 7
P JOptionPane mit Inhalt? Java Basics - Anfänger-Themen 2
M HTML in JOptionPane-Dialog aber keine Links Java Basics - Anfänger-Themen 6
A JOptionPane -> abbrechen -> NullPointerException Java Basics - Anfänger-Themen 4
M JOptionPane - Dialog Java Basics - Anfänger-Themen 6
C Problem mit JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
G Schleife mit JOptionPane Java Basics - Anfänger-Themen 6
C JOptionPane in Taskleiste anzeigen Java Basics - Anfänger-Themen 3
G JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
F JOptionPane selbst programmieren Java Basics - Anfänger-Themen 8
G Problem miT JOptionPane Java Basics - Anfänger-Themen 6
G JOptionPane.TOOL_TIP_TEXT_KEY wie verwendet man es? Java Basics - Anfänger-Themen 4
G JOptionPane wird nicht angezeigt Java Basics - Anfänger-Themen 3
I Problem bei JOptionPane Java Basics - Anfänger-Themen 3
B JOptionPane in vordergrund bringen Java Basics - Anfänger-Themen 2
G JOptionPane zentrieren? Java Basics - Anfänger-Themen 2
M JOptionPane.OK_OPTION abfangen oder disablen? Wie? Java Basics - Anfänger-Themen 3
G JOptionPane Java Basics - Anfänger-Themen 4
P Probleme mit JOptionPane Java Basics - Anfänger-Themen 7
G JOptionPane Java Basics - Anfänger-Themen 6
B JOptionPane und das zweidimensianle Array Java Basics - Anfänger-Themen 2
M StackOverFlow bei JOptionPane? Java Basics - Anfänger-Themen 23
S JOptionPane.showInputDialog nur ein OK Button Java Basics - Anfänger-Themen 3
G JOptionPane Java Basics - Anfänger-Themen 8
D JOptionPane mit eigenem Icon Java Basics - Anfänger-Themen 2
A Bild einfügen in JOptionPane Java Basics - Anfänger-Themen 5
N JOptionPane.showInputDialog gibt null zurück Java Basics - Anfänger-Themen 9
D Thread und JOptionPane -> Problem Java Basics - Anfänger-Themen 6
D jOptionPane OK Button Java Basics - Anfänger-Themen 4
B JOptionPane mit mehr Eingabeflächen Java Basics - Anfänger-Themen 3
G JOptionPane Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben