Gå til innhold

Hvordan lukke et JFrame vindu(ikke system.exit)


Anbefalte innlegg

utdrag av Kode:

public class RetroPromt extends JFrame implements KeyListener{
   JTextField input;
   JLabel txt;	
   JLabel temp;// Denne Labelen er bare midlertidig siden jeg ikke vil at boksen skal avsluttes under testing.
   boolean bolJN;
   boolean bolWindowVisible;
  
   public RetroPromt(String title){
setTitle(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addKeyListener(this);
setLayout(new FlowLayout());
txt = new JLabel("   Lagre spillet? Y/N");
add(txt);
temp = new JLabel("   'e' for å fjerne boksen");
add(temp);
setBounds(400,300,150,80);
this.setUndecorated(true);
setBolWindowVisible(true);   //for testing om vinduet kunne lukkes slik
this.repaint();            //-----------------""-----------------
this.setVisible(bolWindowVisible);	
   }    
   public boolean getBolJN(){
return bolJN;
   }
   public void setBolWindowVisible(boolean bol){
bolWindowVisible = bol;	
   }
   
   public void keyTyped(KeyEvent e){
       char chrKey = e.getKeyChar();

       if (chrKey =='y' || chrKey == 'j'){
           bolJN = true;
    System.out.println(" boolean true");
    //System.exit(1);
       }else if (chrKey =='n'){
    bolJN = false;
    System.out.println(" boolean false");
    //System.exit(1);
}else if(chrKey == 'e'){    // lagt til for testingpurposes
   setBolWindowVisible(false);    
       }
   }

   public void keyPressed(KeyEvent e) {}	//må være med for å funke
       
   public void keyReleased(KeyEvent e) {}	//må være med for å funke

}

Hvordan kan eg få lukket viduet uten å bruke System.exit(1)?

Dette vinduet skal ligge over et annet, og ved System.exit så avsluttes alt.

Endret av Qwark
Lenke til kommentar
Videoannonse
Annonse
tenker du pa dispose()?

5943794[/snapback]

 

Kjør remove på komponenten som eier rammen din, den blir ikke fjernet ved hjelp av dispose. Hvis du da i lengden åpner mange slike rammer og fjerner de med dispose vil rammen din sakte men sikkert ta slutt. Du kan enkelt åpne windows task manager og sjekke hvor mye ressurser du bruker.

 

Med dispose kan du enkelt finne den med show() igjen.

 

Vennlig hilsen

High Voltage

Endret av HV
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...