Avatar billede rolchau Nybegynder
18. maj 2001 - 23:46 Der er 3 kommentarer og
1 løsning

Hvordan lukker man en JInternalFrame?

Jeg har en frame der indeholder en JInternalFrame. Denne interne frame skal indeholde en knap som kan lukke for framen uden at hele programmet går ned (den interne frame skal ikke være closable). Det jeg har er en actionlistener sat på knappen og jeg kalder:
framenavn.dispose(); , men dette virker ikke og den giver en fejl med at framen er en inner class og man skal erklære den final. Er der en der kan forklare nærmere?   
Avatar billede rolchau Nybegynder
18. maj 2001 - 23:49 #1
Heh jeg fandt selv ud af det...dooh



Avatar billede logical Nybegynder
18. maj 2001 - 23:54 #2
Dispose() er fin nok, den frigiver resourcerne.
Hvis du bare vil undgå at vise, kan du også bruge setVisible(false). Så sparer du evt. at lave en ny JInternalFrame næste gang, men kan bare setVisisble(true) igen.

Din fejl med final inner classes er svær at gøre noget ved uden kode, så en snippet vil være dejlig.

typisk er det på grund af følgende:
JInternalFrame f = new JInternalFrame(\"Hej\");
JButton b = new JButton(\"Close\");
b.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    f.dispose(); // Kan ikke lade sig gøre
  }
}

Hvis nu f have været erklæret således:

final JInternalFrame f = new JInternalFrame(\"Hej\");

Havde der ikke været nogen problemer
Avatar billede rolchau Nybegynder
19. maj 2001 - 00:02 #3
Jeg havde glemt at fjerne selve oprettelsen:
JInternalFrame f = new JInternalFrame();
Det skulle have været
f = new JInternalFrame();
for jeg havde erklæret den ude for den interne klasse. Lille fejl - Til at få hovedpine over.
Avatar billede logical Nybegynder
19. maj 2001 - 00:06 #4
Det er typisk :-)

Det er lige præcis den slags, man bare ikke kan se i første omgang.
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