Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: JOptionPane....

  1. #1
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515

    JOptionPane....

    ciao a tutti....

    ho un piccolo problemino con JOptionPane...

    Allora...

    il JOptionPane lo uso come controllo JTextField se sono piene oppure no...

    tutto quì è ok!!! ma poi mi sono accorto di una cosa!!!!!!!

    il controllo viene eseguito in un frame...

    se non dovessi inserire niente e chiudere il frame e poi riaprirlo e non inserire ancora niente il messaggio JOpionpane si apre tante volte per quante volte chiudo il frame senza inserire niente.....

    in poche parole....se questa operazione la dovessi fare 3 volte, per 3 volte di sseguito mi esce il messaggio...cioè è come se rimanesse in memoria la TextField vuota...

    come controllo scrivo così:

    codice:
    String s1 = nome.getText();
    if (s1.length()==0){
    JOptionPane.showMessageDialog(null, "Inserire il nome!!", "Messaggio...",JOptionPane.WARNING_MESSAGE );	
    }else {
    .....
    spero di essere stato chiaro!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Da quelle 3 righe di codice non si vede molto...

  3. #3
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    codice:
    buttonPlaylist.addActionListener(new ActionListener() {				
    public void actionPerformed(ActionEvent evt) {
    String s1 = nome.getText();
    if (s1.length()==0){
    JOptionPane.showMessageDialog(null, "Inserire il nome!!", "Messaggio...",JOptionPane.WARNING_MESSAGE );	
    }
    else {
    try {
    Class.forName("org.gjt.mm.mysql.Driver");
    }
    catch (Exception exc) {
    System.out.println("Errore - Driver jdbc non presente: "+ exc.getMessage());
    }
    			
    try {
    conn = DriverManager.getConnection("jdbc:mysql://localhost/nomi?user=root&password=134567");						
    								
    String query = "INSERT into combolist (combo) values(?)";
    pstmt = (PreparedStatement) conn.prepareStatement(query); 
    pstmt.setString(1, s1); 
    pstmt.execute(); 						 					
    				
    comboPrincipale.addItem(s1);
    comboEdit.addItem(s1);
    nome_Playlist.setText("");
    //pstmt.close();
    //conn.close();
    				
    JOptionPane.showMessageDialog(null, "Nome Inserito!", "Messaggio...",JOptionPane.INFORMATION_MESSAGE );	
    }
    							
    catch (Exception exc) {
    System.out.println("Errore: "+ exc.getMessage());											
    }
    }
    }
    });
    		
    }
    questo è all'evento click...ora non so se il problena è alla chiusura del frame o al JButton

  4. #4
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    nessuno mi sa dare una spiegazione???

    è come se rimanesse in memoria il messaggio che esce.....

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il codice che hai postato mostra che hai un ActionListener associato ad un pulsante.
    Tutto ciò che possiamo dire su quel codice è che viene eseguito quando viene premuto il pulsante. Ed in nessun altro caso (essendo esplicitamente costruito per quel pulsante e non condiviso con altro).

    Se hai dei messaggi che compaiono in altre situazioni, allora c'è del codice in altre parti che li fanno comparire: di sicuro, quel codice non c'entra nulla con la chiusura dei frame (a meno che tu non abbia esplicitamente istanziato un WindowListener che, alla chiusura, richiama quella parte di codice come se il pulsante fosse stato premuto... ma in tal caso non hai postato il codice del WindowListener, quindi...).

    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

  6. #6
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    ciao lele...ho un WindowListener....ma solo alla chiusura del programma!!!

    praticamente ho creato una classe:

    codice:
    class CloseWarning extends WindowAdapter
    {
        public void windowClosing (WindowEvent e)
        {
            int ret = JOptionPane.showConfirmDialog (null, "Chiudere la finestra?", "Messaggio", JOptionPane.YES_NO_OPTION);
            if (ret == JOptionPane.YES_OPTION)
                System.exit (0);
        }
    }
    questo codiche lo richiamo solo quando chiudo il programma dal menù "esci" e dalla "x" che frame.....potrebbero essere quello il problema???

  7. #7
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    ho eliminato tutti i WindowListener ma ho sempre lo stesso errore!!!!!!!


    del cod. che ho inseriro non è altro una parte del metodo...in questo metodo inserisco un gribagLayout per un label un JTextFlield e un JButton e poi nel JButton faccio il controllo del JTextField....

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Quel WindowListener non c'entra nulla: mica esegue un doClick() sul pulsante. Oltretutto fa una System.exit(0) che quindi fa terminare la JVM... se la JVM termina, nulla rimane in memoria (e ci mancherebbe!)

    Cerca di spiegare per bene cosa accade che non vuoi perchè davvero è difficile riuscire ad immaginare cosa tu stia facendo.

    L'ActionListener che hai postato viene eseguito solo ed unicamente al clic sul pulsante. Stai cliccando ul pulsante? Non mi pare tu l'abbia detto... parli di chiusura e riapertura di finestre, che non effettuano nulla sui pulsanti. Quindi quel actionListener non viene eseguito. Garantito.

    Non spieghi però cosa effettui in concreto quando viene chiusa la finestra e quando viene riaperta? Stai creando nuove istanze della finestra? O riutilizzi le stesse? Perchè gli ActionListener non muiono per conto loro... o li si disinstalla dai pulsanti o ci si accerta che i pulsanti vengano effettivamente tolti di mezzo.

    Quindi, cerca di spiegare per bene, per filo e per segno, cosa fai perchè davvero non si è capito nulla.


    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

  9. #9
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    allora...io ho un Menù che fa aprire la finestra:

    codice:
    MenuItem creaNomePlaylist = new MenuItem("Crea");
    creaNomePlaylist.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {	
    modelEdit.removeAllElements();
    creaNomePlaylist();
    }	
    });
    poi ho il metodo:

    codice:
    private void creaNomePlaylist() {
    nome_Playlist = new JTextField(20);
    GridBagLayout grid = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();
    constraints.insets.bottom = 5;
    constraints.insets.left = 5;
    constraints.insets.right = 5;
    constraints.insets.top = 5;
    constraints.fill = GridBagConstraints.BOTH; 
    		
    constraints.gridx = 0;
    constraints.gridy = 0;
    constraints.gridwidth = 1;
    constraints.gridheight = 1;	
    grid.setConstraints(labelPlaylist, constraints);
    		
    constraints.gridx = 1;
    constraints.gridy = 0;
    constraints.gridwidth = 1;
    constraints.gridheight = 1;	
    grid.setConstraints(nome_Playlist, constraints);
    		
    constraints.gridx = 2;
    constraints.gridy = 0;
    constraints.gridwidth = 1;
    constraints.gridheight = 1;	
    grid.setConstraints(buttonPlaylist, constraints);
    		
    JPanel p = new JPanel();
    p.setLayout(grid);
    		
    p.add(labelPlaylist);
    p.add(nome_Playlist);
    p.add(buttonPlaylist);	
    JFrame frame = new JFrame("Crea Nuova PlayList");
    frame.setSize(600,200);	
    frame.getContentPane().add(p);
    frame.setVisible(true);
    // Centra il frame
    frame.setLocationRelativeTo(null);    
    buttonPlaylist.addActionListener(new ActionListener() {				
    public void actionPerformed(ActionEvent evt) {
    String s1 = nome_Playlist.getText();
    if (s1.length()==0){
    JOptionPane.showMessageDialog(null, "Inserire il nome della Playlist!!", "Messaggio...",JOptionPane.WARNING_MESSAGE );	
    }
    else {
    try {
    Class.forName("org.gjt.mm.mysql.Driver");
    }
    catch (Exception exc) {
    System.out.println("Errore - Driver jdbc non presente: "+ exc.getMessage());
    }
    			
    try {
    conn = DriverManager.getConnection("jdbc:mysql://localhost/basi?user=root&password=234567");						
    								
    String query = "INSERT into combolist (combo) values(?)";
    pstmt = (PreparedStatement) conn.prepareStatement(query); 
    pstmt.setString(1, s1); 
    pstmt.execute(); 						 					
    				
    				
    comboPrincipale.removeAllItems();
    comboEdit.removeAllItems();
    comboShow();
    nome_Playlist.setText("");
    pstmt.close();
    conn.close();
    				
    JOptionPane.showMessageDialog(null, "Nome Playlist Inserita!", "Messaggio...",JOptionPane.INFORMATION_MESSAGE );
    
    }
    							
    catch (Exception exc) {
    System.out.println("Errore: "+ exc.getMessage());											
    }
    }
    }
    });
    		
    }
    questo è tutto!!!

  10. #10
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    ora il problema è quando non iserisco i dati e chiudo e riapro il frame....

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.