Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    118

    [java]Attivatori jpanel

    Salve a tutti

    E da poco che utilizzo java e non riesco a risolvere un problema.
    ovvero.
    Nella mia applicazione ho un frame principale in cui apro tutti i vari jpanel , il mio problema e che in alcuni casi avrei bisogno di far scaturire determinati eventi nel frame solo quando il panello attivo diventa invisibile.
    Come posso fare?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Cosa significa di preciso "quando un pannello diventa invisibile"? Quando il pannello viene reso invisibile ( setVisible(false) ) o quando il pannello viene nascosto da qualcos'altro (sovrapposizione, layout, ecc)?

    Cosa sono, di preciso, questi eventi che devono scaturire? Il termine "evento" ha significati diversi a seconda del contesto in cui è utilizzato.

    Dovresti cercare di essere più preciso, magari con un esempio.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    118
    Grazie per la risposta

    l'evento si deve verificare quando la visibilita dell pannello diventa falsa
    SetVisivle(false)
    per spiegarlo in breve quando un pannello mi scompare ne deve apparire un altro.
    io ho scritto questo ma non mi funziona

    codice:
    package prova;
    
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ComponentEvent;
    import java.awt.event.ComponentListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import javax.swing.*;
    
    public class Prova {
        static pannello1 panel;
        static pannello2 pa;
        public static void main(String[] args) 
        {
            frameprincipale f = new frameprincipale("prova");
            Container c = f.getContentPane();
            panel = new pannello1() {};
            pa = new pannello2() {};
            c.add(pa);
            c.add(panel); 
            pa.setVisible(true);
            f.addWindowListener(new Terminator());
            panel.addComponentListener(new comp());
            f.show();
        }
        
        static class comp implements ComponentListener
        {
            @Override
            public void componentResized(ComponentEvent e) {
            
            }
            @Override
            public void componentMoved(ComponentEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
            @Override
            public void componentShown(ComponentEvent e) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
    
            @Override
            public void componentHidden(ComponentEvent e) 
            {
                pa.setVisible(true);               
            }
    }
        
    }
    
    class frameprincipale extends JFrame 
    {
         public frameprincipale()
        {
            super();
            setBounds(300,200,800,600);
         }
         public frameprincipale(String titolo)
         {
            super(titolo);
            setBounds(300,200,800,600);
         }
    }
    abstract class pannello1 extends JPanel implements ActionListener
    {
        pulsante p;
        public pannello1()
        {
            p = new pulsante("nascondi");
            p.addActionListener(this);
            add(p);
        }
         public void paintComponent(Graphics g)  
        {
            super.paintComponent(g);
            g.setColor(Color.red); 
            g.fillRect(20,20, 100,80);
        }
         public void actionPerformed(ActionEvent e)
         {  
              this.setVisible(false);
         }
    }
    
    abstract class pannello2 extends JPanel implements ActionListener
    {
        pulsante k;
        public pannello2()
        {
            k = new pulsante ("visualizza");
            k.addActionListener(this);
            add(k);
        }
         public void paintComponent(Graphics g)  
        {
            super.paintComponent(g);
            g.setColor(Color.black); 
            g.fillRect(20,45, 100,80);
        }
         public void actionPerformed(ActionEvent e)
         {  
             this.setVisible(false);
         }
    }
    
    
    class pulsante extends JButton
    {
        public pulsante()
        {
            super();
            setBounds(0,0,200,50);
        }
        public pulsante(String testo)
        {
            super(testo);
            setBounds(0,0,200,50);
            
        }
    }
    
     class Terminator implements WindowListener 
     { 
        public void windowClosed(WindowEvent e){} 
        public void windowClosing(WindowEvent e)
        { 
            System.exit(0); 
        } 
        @Override
        public void windowOpened(WindowEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }   
        @Override
        public void windowIconified(WindowEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
        @Override
        public void windowDeiconified(WindowEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
        @Override
        public void windowActivated(WindowEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
        @Override
        public void windowDeactivated(WindowEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        }
    }
    ho postato tutto il codice , lo so che è un po troppo pero penso sia il modo migliore per farvi capire il mio problema

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.