Gå til innhold

Lukke JInternalFrame ved hjelp av JButton


Anbefalte innlegg

Jeg har laget en applikasjon med flere internal frames. I disse har jeg en JButton, med tekst "Lukk vindu". Jeg ønsker at når knappen trykkes skal vindu lukkes.

 

Har forsøkt å google, men jeg aner ikke hva jeg skal google etter.

Forsøkte meg system.exit(0), men da avsluttet hele applikasjonen, og det er ikke det jeg vil.

 

Noen som kan peke meg ut i riktig retning?

Lenke til kommentar
Videoannonse
Annonse
Jeg har laget en applikasjon med flere internal frames. I disse har jeg en JButton, med tekst "Lukk vindu". Jeg ønsker at når knappen trykkes skal vindu lukkes.

 

Har forsøkt å google, men jeg aner ikke hva jeg skal google etter.

Forsøkte meg system.exit(0), men da avsluttet hele applikasjonen, og det er ikke det jeg vil.

 

Noen som kan peke meg ut i riktig retning?

6040295[/snapback]

 

Alt dette er sånn ca.

 

Din JInternalFrame har en eier, "sansynligvis" en JFrame med JDesktopPane. Dette objekter sendes med når du oppretter din JinternalFrame:

 

DinInternalFrame gui= new DinInternalFrame (DinFrame.this);

gui.setLocation(10,10);

gui.setVisible(true);

desktop.add(gui);

 

I din JInternalFrame må du ta vare på den variabelen:

public DinInternalFrame (DinFrame parent){

super(TITLE,true,true,true,true);

this.parent = parent;

initialize();

}

 

Når du da vil fjerne "DinInternalFrame" kjører du:

parent.remove(DinInternalFrame.this);

 

Hvis den har en tendens til å henge lell om den er fjernet:

Lager du en metode i din JFrame som heter feks:

public void updateUI(){

desktop.updateUI();

}

 

Dette må gjøres for at du skal klare å opdatere din JdesktopPane.

 

Slik at hele koden for å fjerne blir:

 

parent.remove(DinInternalFrame.this);

parent.updateUI()

 

 

Vennlig hilsen

High Voltage

Endret av HV
Lenke til kommentar

For at det skal vises et kryss øverst i høyre hjørne så trenger du kun legge til denne linjen:

 

this.setClosable(true);

 

Hvis du skal lukke vinduet ved hjelp av kode kan du skrive:

this.setClosed(true);

 

Hvis du vil gjøre noe hvis brukeren trykker på krysset i hjørnet så kan du lytte på eventet det generere:

 

this.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() {
           public void internalFrameClosing(InternalFrameEvent e) {
               // kode for ting du skal gjøre når vinduet skal lukkes her
           }
           public void internalFrameOpened(InternalFrameEvent e) {
               // kode for ting du skal gjøre når vinduet har åpnet her
           }
           public void internalFrameActivated(InternalFrameEvent e) {
               // kode for ting du skal gjøre når vindu åpnes her
           }
       });

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...