Avatar billede snot Nybegynder
28. maj 2002 - 00:40 Der er 8 kommentarer og
1 løsning

JOptionPane -> og cancelknap!

dav.

Jeg har en JOptionPane som retuerner en String.
Dette sker dog kun hvis brugeren trykker OK.

Hvordan finder jeg ud af om en bruger har trykket CANCEL ?

skal jeg lave en handler ??

copy/paste evt. et eksempel ..tak ?

SNoT
Avatar billede codemon Nybegynder
28. maj 2002 - 00:46 #1
Der retuneres en JOptionPane.CANCEL_OPTION som er en int hvis der trykkes cancel.
Avatar billede snot Nybegynder
28. maj 2002 - 00:54 #2
??? eksempel ??

dato1Ind = JOptionPane.showInputDialog(this, "Indtast Dato", "Systemet kræver inddata", JOptionPane.PLAIN_MESSAGE);
System.out.println("CANCEL: " + dato1Ind);

giver ikke en int = 1;

Resultat på DOS-skræm giver:
CANCEL: null


...har du ikke et eks ??
Avatar billede snot Nybegynder
28. maj 2002 - 00:55 #3
dato1Ind er en String
Avatar billede codemon Nybegynder
28. maj 2002 - 00:55 #4
ehhm, JOptionPane.showInputDialog(null,"test"); retunerer null hvis der trykkes cancel. "" hvis der trykkes ok uden noget tekst (var lidt for hurtig før)
Avatar billede codemon Nybegynder
28. maj 2002 - 00:58 #5
Som du skriver, null.

Så er det bare at
String tekst = JOptionPane.showInputDialog( ...// osv
if (tekst==null)
  throw new Fejl40Exception ("Fejlen befinder sig ca. 40 cm foran skærmen, ret fejlen og prøv igen");
else
  // det hele er ok
Avatar billede snot Nybegynder
28. maj 2002 - 01:02 #6
det kan man altså ikke...

dato1Ind = JOptionPane.showInputDialog(this, "Indtast Dato", "Systemet kræver inddata", JOptionPane.PLAIN_MESSAGE);
if (dato1Ind == null) dispose();

giver :

Exception occurred during event dispatching:
java.lang.NullPointerException
        at GUILedigeVaerelser.isDato(GUILedigeVaerelser.java:184)
        at GUILedigeVaerelser.getInddata(GUILedigeVaerelser.java:153)  osv.........
Avatar billede codemon Nybegynder
28. maj 2002 - 01:08 #7
Denne simple test fungerer udmærket hos mig.

public static void main(String[] args)
{
  String s = JOptionPane.showInputDialog(null,"test");
  if (s == null)
      System.out.println("Du trykkede cancel");
  else
      System.out.println("du skrev " + s);
   
  System.exit(0);
}
Avatar billede snot Nybegynder
28. maj 2002 - 01:20 #8
never mind.. fandt en løsning i min javabog !!!!!
Avatar billede codemon Nybegynder
28. maj 2002 - 01:21 #9
Når du afviser svar, så læg din egen løsning ud.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester