Avatar billede connorz Nybegynder
16. januar 2003 - 10:31 Der er 3 kommentarer og
1 løsning

åben frame

Jeg har et program, der gerne skulle lukke ordentligt med et spørgsmål... Se nedenstående kode:

public void exitGame()
{
  String msg="Do you really want to exit?";
  int answer=JOptionPane.showConfirmDialog(this,msg,"Exit?",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
  if (answer==JOptionPane.YES_OPTION)
    System.exit(0);
}

Denne metode kaldes, når der klikkes på krydset i øverste højre hjørne, men hvis der klikkes 'No' vil vinduet stadig lukke, men systemet (kommandoprompten) forbliver åbent! Hvordan kan jeg tvinge min frame til at forblive åben, hvis der trykkes 'no'?
Avatar billede riversen Nybegynder
16. januar 2003 - 10:35 #1
else
  show();

men der er sikkert en bedre metode
Avatar billede arne_v Ekspert
16. januar 2003 - 10:35 #2
Kan du poste lidt mere kode ?
Avatar billede carstenknudsen Nybegynder
16. januar 2003 - 10:38 #3
Den lukker fordi det er en JFrames default opførsel
når man klikker på krydset. Kald i din konstruktor
metoden:
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
så er det helt op til dig hvad der skal ske.
Avatar billede connorz Nybegynder
16. januar 2003 - 10:38 #4
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
  {
    exitGame();
  }
});

Denne kalder exitGame, når der klikkes på krydset...
Hvis klikket kan undertrykkes i denne metode, kan exitGame() måske returnere false eller true! Er det løsningen? Og hvordan undertrykker man i givet fald klikket?
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