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

    main che chiama una classe JFrame

    ciao
    ho il seguente problema :
    ho preparato una classe che estende JFRAME , la classe ha un bottone associato ad un ascoltatore ; ho anche definito un contatore che , raggiunto un certo numero di click del bottone ,
    chiude la classe JFRAME con System.exit(0) ;
    ho preparato le istruzioni per usare l'event dispatch thread , la classe JFRAME funziona , cioè appare il FRAME e posso cliccare il bottone per un numero di volte stabilito ;

    ho poi fatto una classe main che chiama la classe JFRAME , però non viene
    più eseguito il ciclo del''ascoltatore , vedo infatti sulla schermata DOS i messaggi
    inseriti nel costruttore di JFRAME fino a prima dell'addActionListener associato
    all'ascoltatore ;

    perchè ?

    grazie dell'aiuto
    ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Magari postando un po' di codice... già è alquanto criptico ciò che hai detto:

    "ho preparato le istruzioni per usare l'Event Dispatch Thread"... l'EDT lo usa (e lo prepara) la JVM.
    "chiude la classe con System.exit(0)"... System.exit(0) fa proprio terminare di brutto la JVM (con tutto quello che c'è appeso), non serve a chiudere una finestra...

    Posta il codice che hai scritto, cercando di spiegare meglio il problema...


    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
    ok , scusa

    codice:
    public class  A {
    
       public static void main (String[] args) 
          {     
           int                 num_ana = 4; 
           B pippo = new B(num_ana);
           System.exit(0) ;  
          }      
    }
    codice:
    import javax.swing.*;
    import java.lang.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    /**
     */
    public class B extends JFrame {
        
        private int     nanagr = 3 ; 
        private int     x1 = 0 ; 
    
        private boolean flag   ;     
        private String  nome   ;
        private String  cogn   ;
       
        String a   ;
        String b   ;
            
        JLabel Nome    = new JLabel("nome");
        JLabel Cogn    = new JLabel("cognome");
           
        JTextField Nome1    = new JTextField() ;
        JTextField Cogn1    = new JTextField() ;
     
        JButton quitButton = new JButton("insert");
           
        //JPanel panel = new JPanel(new GridLayout(2, 3));
        //ContentPane panel = new getContentPane();
        JPanel panel = new JPanel();       
        //final JTextArea uno = new JTextArea();
       
        public B(int n) {
            nanagr = n;
            System.out.println("inizio - nanagr: " + nanagr );        
            initUI();
        }
    
        public void initUI() {
    
           System.out.println("1 - initUI " + x1 + " - nanagr:" + nanagr );
                       
           panel.setLayout(new GridLayout(2,2));
           
           panel.add(Nome);
           panel.add(Nome1);
           panel.add(Cogn);
           panel.add(Cogn1);
           panel.add(quitButton);
            
           getContentPane().add(panel);
           
           setTitle("richiesta dati anagrafici nagrafica " + x1);
           setSize(400, 300);
           setLocationRelativeTo(null);
           setDefaultCloseOperation(EXIT_ON_CLOSE);
    
           System.out.println("2 - initUI " + x1 + " - nanagr:" + nanagr );
              
           quitButton.addActionListener(new ActionListener() {
    
               public void actionPerformed(ActionEvent W) {
    
                   System.out.println("3 - initUI " + x1 + " - nanagr:" + nanagr );
                   
                   if ( x1 == nanagr )  {  
                       System.out.println("4 - initUI " + x1 + " - nanagr:" + nanagr );
                       System.exit(0);   
                      }
                   else  { 
                      System.out.println("x1 : " + x1 + " - nanagr:" + nanagr );
                       
                      a = Nome1.getText()   ;
                      b = Cogn1.getText()   ;
              
                      flag  = true;           
                      controllo1();
                       
                    }                  
                  }
               });      
        }
    
           
          private void controllo1() {
            . . . . .   
            . . . . .              
          }   
        
        
         public static void main(String[] args) {
    
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    B ex = new B(3);
                    ex.setVisible(true);
                }
            });
    
        }
    
    }
    
    grazie
    
    ciao

  4. #4
    ho trovato , nella classe B mancava il setVisible (true) dopo
    la preparazione del pannello ..
    ciao

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.