Avatar billede Slettet bruger
18. august 2003 - 11:01 Der er 3 kommentarer og
1 løsning

Manual minimize af frame - senere automatisk visning

Jeg har lavet en JFrame, men når den bliver ICONIFIED skjules (hide()) framen.... derefter skal den efter et stykke tid gå tilbage til normal-state...

Derfor bruger jeg først (show()) og derefter setExtendedState(JFrame.NORMAL), men den returnerer ikke vinduet i en vist tilstand, men ikonet ligger i Taskbar.(altså som hvis man klikker på taskbar-icon for programmet)

Nogen der har en forklaring på dette problem ?!?.... nå, ja....og en løsning, tak :-)
Avatar billede _carsten Nybegynder
18. august 2003 - 11:09 #1
Prøv: setExtendedState(MAXIMIZED_BOTH);
Avatar billede _carsten Nybegynder
18. august 2003 - 11:12 #2
Og dog - jeg er vist ikke helt med på hvad det er du mener !!
Avatar billede _carsten Nybegynder
18. august 2003 - 12:06 #3
Du skal bruge: setExtendedState(java.awt.Frame.NORMAL);

Tror du arbejder på nedenstående, prøv at kompilere de 2 classer
og check selv.


public class Test extends javax.swing.JFrame {
   
    public Test() {
        initComponents();
        new Test2();
        setSize(400, 400);
        show();
        test2.show();
    }
   
    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jButton1.setText("Vis Frame 2");
        jButton1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                showSecondFrame(evt);
            }
        });

        getContentPane().add(jButton1, java.awt.BorderLayout.CENTER);

        jButton2.setText("Skjul Frame 2");
        jButton2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                hideSecondFrame(evt);
            }
        });

        getContentPane().add(jButton2, java.awt.BorderLayout.NORTH);

        pack();
    }

    private void hideSecondFrame(java.awt.event.ActionEvent evt) {
        test2.skjul();
    }

    private void showSecondFrame(java.awt.event.ActionEvent evt) {
        test2.vis();   
    }
   
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
   
    public static void main(String args[]) {
        new Test();
            }
   
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javatest.Test2 test2 = new javatest.Test2();
}




class Test2 extends javax.swing.JFrame {

    public Test2() {
        initComponents();
        setSize(200,200);
    }
   
    private void initComponents() {
       
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });
       
        pack();
    }
   
    public void vis(){
        setExtendedState(NORMAL);
    }
   
    public void skjul(){
        setExtendedState(ICONIFIED);
    }
   
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
}
Avatar billede Slettet bruger
18. august 2003 - 12:28 #4
Hrmmm.....din kode virker, men min gør ikke.... sååh.... det er nok noget bæ jeg selv har lavet - du svarede dog på spørgsmålet....så, du får pointene... :-)
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