Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JAVA] Swing

    Ciao ragazzi ho un problema ho creato due file ognuno di loro crea due JFrame. Nel primo Frame1 ho creato un toggleButton ora quando il toggleButton e premuto mi visualizza il secondo Frame2 ma quando rilascio vorrei chiudere il secondo Frame2.

    codice:
    public class Frame1 extends JFrame{
    ....  
    JToggleButton Pulsante = new JToggleButton();
    ...
    public Frame1(){
      ...
      Pulsante.addItemListener(new PulsanteItem());
      ... 
     }
    class PulsanteItem implements ItemListener{
     Frame2 riduci = new Frame2();
     
        public void itemStateChanged(ItemEvent e) {
           int status = e.getStateChange();
           if(status == ItemEvent.SELECTED) {
             System.out.println("Tasto Schiacciato");
           new Frame2();
         }
           else
            System.out.println("Tasto Rilasciato");
    //Qui chiamo tramite un oggetto il metodo contenuto nell'altroframe  
         riduci.Nascondi();
         }
      }
    } 
    ---------------------------------------------------------------------
    public class Frame2 {  
     JFrame frame = new ResultSetFrame();
      
      public Frame2(){
      Visualizza();
      }
     
     
     public void Visualizza(){
            
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       frame.setLocation(400,200);
       frame.setIconImage(new ImageIcon("Image/frame.png").getImage());
       frame.setVisible(true);
     }  
     
     public void Nascondi(){
       frame.setVisible(false);
     }
    
    }
    Invece di setVisible(false) che metodo dovrei passargli e perche quando rilascio il togglebutton perde il focus ma rimane ancora visibile grazie in anticipo

  2. #2

    [JAVA]JFrame

    Ho sostituito il metodo setVisible(false) nel metodo Nascondi() con un System.out.println("Nascondi finestra") ma non mi stampa nulla nella console e non ottengo errori in compilazioni qualcuno potrebbe spiegarmi gentilmente come mai per richiamare un metodo di un'altra classe devo istanziare l'oggetto di quella classe per poi richiamare il metodo su quell'oggetto ma perche questo non aviene

  3. #3
    Da una rapida occhiata, un po' superficiale, mi pare che ci sia una doppia crazione del JFrame2

    codice:
    class PulsanteItem implements ItemListener{
     Frame2 riduci = new Frame2(); 
     
        public void itemStateChanged(ItemEvent e) {
           int status = e.getStateChange();
           if(status == ItemEvent.SELECTED) {
             System.out.println("Tasto Schiacciato");
           new Frame2(); 
         }
           else
            System.out.println("Tasto Rilasciato");
    //Qui chiamo tramite un oggetto il metodo contenuto nell'altroframe  
         riduci.Nascondi();
         }
      }
    Io proverei così:

    codice:
    class PulsanteItem implements ItemListener{
     Frame2 riduci = new Frame2 
     
        public void itemStateChanged(ItemEvent e) {
           int status = e.getStateChange();
           if(status == ItemEvent.SELECTED) {
             System.out.println("Tasto Schiacciato");
           riduci.setVisible(true); 
         }
           else
            System.out.println("Tasto Rilasciato");
    //Qui chiamo tramite un oggetto il metodo contenuto nell'altroframe  
         riduci.setVisible(false); 
         }
      }
    Ti ho evidenziato le parti interessate dalle modifiche. Poi nel codice che hai scritto della seconda classe manca "extends JFrame"

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

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.