Avatar billede gruppen Nybegynder
09. november 2001 - 14:20 Der er 6 kommentarer og
1 løsning

Luk en InternalFrame

Jeg har en JFrame - dvs. et vindue - hvori jeg har en Internal frame - dvs et nyt vindue inden i min JFrame
i denne har jeg \"ok\" knap og en \"luk\"
det jeg så har brug for er en \"luk-funktion\" til Internal frame vinduet - uden at det er en det er en system.exit(0) så at den lukker hele \"programmet\".
Jeg mangler også et svar på spørgsmålet
http://www.eksperten.dk/spm/130687
hvis der er nogle der kunne kende svaret
Avatar billede disky Nybegynder
09. november 2001 - 14:23 #1
prøv at kald en .setVisible(false); på dit objekt
Avatar billede gruppen Nybegynder
09. november 2001 - 14:40 #2
men så gør man vel bare sådan et den ikke kan ses - men lukker den ikke ???
Avatar billede logical Nybegynder
09. november 2001 - 21:29 #3
Det du nok mener at ville gøre er, at du vil have en JFrame (Brug kun 1 pr applikation, hvis du er nogenlunde fornuftig), og så vil du have en eller anden for for dialog med brugeren i endnu et vindue.

så gør således:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DialogFrame {
    private JFrame frame;
    private JDialog dialog;
   
    private class OpenAction implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            showDialog();
        }
    }
   
    private class CloseAction implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            closeDialog();
        }
    }
   
    public DialogFrame() {
        frame = new JFrame(\"Dialog example\");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
        JButton open = new JButton(\"Open dialog\");
        open.addActionListener(new OpenAction());
        frame.getContentPane().add(open);
       
        frame.pack();
        frame.setVisible(true);
    }

    private void showDialog() {
        if (dialog == null) {
            dialog = new JDialog(frame, \"Dialog title\", true);
            JButton close = new JButton(\"Close this dialog\");
            close.addActionListener(new CloseAction());
            dialog.getContentPane().add(close);
            dialog.setSize(300,300);
        }
        dialog.setVisible(true);
    }
   
    private void closeDialog() {
        System.out.println(\"Closing dialog\");
        dialog.setVisible(false);
    }
   
    public static void main (String args[]) {
        new DialogFrame();
    }

}
Avatar billede conrad Nybegynder
10. november 2001 - 12:23 #4
Hvis du vil af med din internal frame
så prøv setvisible(false) så er den skjult og så kald dispose(). Det tror jeg nok virker (ellers er der forhåbenligt nogen der lige kan fortælle hvis det ikke gør :) )
Avatar billede gruppen Nybegynder
11. november 2001 - 19:24 #5
logical>> det du laver i din kode er vel en dialog box - og det er ikke helt det jeg vil have - men mindre selvfølgelig man kan komme tekstfelter derind i - skrive til en database og hente fra en database derinde fra - og desuden kome en metode på \"ok\" tasten så at der bliver gemt noget når der bliver trykket derpå
Avatar billede logical Nybegynder
13. november 2001 - 11:10 #6
Selvfølgelig kan man da det, og ja det er en dialog boks.
Du må endelige ikke forveksle en dialog med en message box, som f.eks. vil du gemme .. Yes/No  (Windows versionen).

En dialog er et undervindue i en applikation. Alt man kan med en JFrame kan man med en JDialog
Avatar billede gruppen Nybegynder
14. november 2001 - 09:29 #7
jeg har lige prøvet dit forslag conrad>> og det virker perfeeeeekt :)
takker
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