27. november 2003 - 14:57Der er
10 kommentarer og 1 løsning
Lukning med bekræftelse.
Jeg har lavet et lille program, og jeg vil gerne have at når man trykker på "krydset" øverst i højre hjørne så kommer der en dialog box frem og spørger om man er sikker på at man vil lukke eller ej. Hvis der bliver trykket på "Yes" skal programmer selvfølgelig terminere fuldstændig, men hvis der bliver trykket på "No" skal der ikke ske noget.
Jeg har denne kode: import java.awt.event.*; import javax.swing.*;
class ApplicationTerminator extends WindowAdapter { public void windowClosing( WindowEvent e ) { int response = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit?", "Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE ); if (response == JOptionPane.YES_OPTION) { System.exit( 0 ); } else if(response == JOptionPane.NO_OPTION) { System.out.println("Det blev sagt NEJ!!!"); } } }
Når jeg nu trykker på "Yes" lukker det hele som det skal, men når jeg trykker på "No" lukker mit program stadigvæk, samt jvm bliver kørende...
Er der nogen der kan hjælpe mig med mit lille problem vil jeg blive meget glad!!!
Kan det ikke lade sig gøre at lave det på en anden måde end ved nesting???
problemet er at der er noget skolearbejde, men lige netop dette er noget jeg bare sidder og leger med, men hvis jeg aflevere det med dit forslag, bliver min lære ikke glad da vi helst ikke skal bruge noget vi ikke har lært endnu...
Jeg kan heller ikke få det til at fungere hvis jeg sætte din kode ind i min... så kommer denne fejl:
addWindowListener(java.awt.event.WindowListener) in java.awt.Window cannot be applied to (<anonymous WindowAdapter>) addWindowListener(new WindowAdapter()
Med udgangspunkt i din egen klasse har jeg lavet dette eksempel:
import java.awt.event.*; import javax.swing.*;
class Test extends WindowAdapter { public void windowClosing( WindowEvent e ) { int response = JOptionPane.showConfirmDialog(null, "Are you sure you want to exit?", "Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE ); if (response == JOptionPane.YES_OPTION) { System.exit( 0 ); } else if(response == JOptionPane.NO_OPTION) { System.out.println("Det blev sagt NEJ!!!"); } }
public static void main(String[] args) { JFrame f = new JFrame(); f.setSize(200,200); f.setDefaultCloseOperation(f.DO_NOTHING_ON_CLOSE); f.show(); f.addWindowListener(new Test()); } }
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.