Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1

    Funzionamento del JOptionPane

    Salve a tutti, volevo capire qualcosa sul funzionamento del JOptionPane..

    allora io fino ad adesso ho usato solo:

    JOptionPane.showMessageDialog(null,"Inserimento effettuato con successo", "Operazione Riuscita",JOptionPane.INFORMATION_MESSAGE);

    dopo che ho fatto un'operazione di inserimento dal mio programma..

    ora volevo chiedervi tre cose e cioè:

    1)è possibile stabilirne la grandezza e il posizionamento?


    2)come si può fare che dentro un JOptionPane.showMessageDialog compaiano per esempio tre frasi una sotto l'altra,invece di averle tutte su una riga?

    3)non ho tanto capito invece JOptionPane.showConfirmDialog, perchè lo volevo utilizzare per avvertire l'utente se era sicuro ci cancellare una riga dalla JTable.

    volevo fare una cosa del genere, nel gestore degli eventi.
    La scrivo in pseudo codice.
    codice:
    if (o instanceof JButton) {
    			if(o==cancella){
    				
    				try{
    				
    				JOptionPane.showConfirmDialog(sei sicuro di cancellare la riga?)
    				
    				se si, allora fai la cancellazione
    
                                   altrimenti non fare niente ed esci!!
    			}}
    				catch(VoceAssente e){
    									
    					
    					JOptionPane.showMessageDialog(null,"Non esiste l'oggetto selezionato", "Attenzione",JOptionPane.ERROR_MESSAGE);
    	
    				
    				}
    			}
    come posso scriverlo?
    grazie ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    JOptionPane serve per avere delle JDialog preconfezionate per un utilizzo generale.
    Tutto quello che puoi farci lo trovi descritto nelle API della classe.
    Se vuoi un grado di personalizzazione piu' alto devi scriverti la JDialog da solo, temo.
    Quindi su due piedi direi:
    1) No
    2) No
    3)
    codice:
    int risp = JOptionPane.showConfirmDialog(sei sicuro di cancellare la riga?);
    if(risp==JOptionPane.YES_OPTION) {
       //cancella
    }

  3. #3

  4. #4
    ah..un'altra cosa, ho un campo JTextField dove vanno inseriti solo numeri, come faccio a fare questa verifica:

    if(dimensione.getText() è uguale ad una stringa){
    JOptionPane.showMessageDialog(null,"Devi inserire un intero", "Attenzione",JOptionPane.INFORMATION_MESSAGE);
    }

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    codice:
    int valoreDimensione = 0;
    try {
       valoreDimensione = Integer.parseInt(dimensione.getText());
    } catch(NumberFormatException e) {
       JOptionPane.showMessageDialog(null,"Devi inserire un intero", 
          "Attenzione",JOptionPane.INFORMATION_MESSAGE);
    }

  6. #6
    ho provato il codice sotto, grazie simo.
    avevo risolto anche con un

    codice:
     if (dimensione.getText() instanceof String){
     JOptionPane.showMessageDialog(null,"Devi inserire un intero", "Attenzione",JOptionPane.WARNING_MESSAGE);
    solo che ho visto che se si introducono caratteri particolari tipo questo ' mi genera un problema, quindi voglio evitare anche che l'utente inserisca questi caratteri.

    come lo gestisco?
    ciao e grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    getText() restituisce sempre un oggetto di tipo string(se metti 1 nel textfield ti restituira la stringa "1"). Quindi il codice che hai postato non credo che vada. In ogni caso che problema ti da?

  8. #8
    we simo, allora se introduco un carattere tipo l'apicetto singolo ' su qualunque campo JTextField, quando invio i dati verso access mi dice

    Errore di sintassi(operatore mancante) nell'espressione della query ecc ecc

    codice dell'errore -3100

    ecco perchè volevo far evitare di introdurre quel carattere..o altri caratteri speciali che ancora non provo..

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    L'apice singolo e' il carattere che delimita le stringhe in sql. Prima di inviare la query devi fare un replace sulla stringa letta con getText per fare l'escape degli apici.
    codice:
    String stringa = textField.getText();
    stringa = stringa.replace("'","''"); //DoppioApice-SingoloApice-DoppioApice, DoppioApice-SingoloApice-SingoloApice-DoppioApice,
    Altra soluzione molto piu' elegante e' usare la classe PreparredStatement per fare le query, in modo da evitare qualsiasi problema del genere.

  10. #10
    scusa simo mi dici dove devo inserire quello che mi hai scritto? perchè io dovrei gestire sta cosa per tutti i campi JTextField

    codice:
    if (o==inserisci) {
    			try{
    				
    	//qui controllo se sono stati inseriti dei campi obbligatori
    				
    				if (titolo.getText().isEmpty() || autore.getText().isEmpty() || tipologia.getSelectedItem()==""
                    	|| nome_file.getText().isEmpty()||dimensione.getText().isEmpty()){
                    						JOptionPane.showMessageDialog(null,"Devi riempire i campi obbligatori *", "Attenzione",JOptionPane.INFORMATION_MESSAGE);
    				                       }
    
    
    				else{
    					
    //qui controllo se è stato inserito un intero
    
    				int valoreDimensione = 0;
                    try {
                    valoreDimensione = Integer.parseInt(dimensione.getText());
                    } catch(NumberFormatException e) {
                    JOptionPane.showMessageDialog(null,"Devi inserire un intero", 
                      "Attenzione",JOptionPane.WARNING_MESSAGE);
                  }
    				
    				
    				VoceDistributore v=new VoceDistributore(titolo.getText(),autore.getText(),(String)tipologia.getSelectedItem(),nome_file.getText(),Integer.parseInt(dimensione.getText()),(String)supporto.getSelectedItem(),idsupporto.getText());
    
    
    //qui faccio la query verso access
    			  	mt.inserisci(v);
    			  
    			    model=new MyTableModel();
    			    sorter = new TableRowSorter<MyTableModel>(model);
            table = new JTable(model);
            table.setRowSorter(sorter);//per l'ordinamento delle colonne
    		table.setFillsViewportHeight(true);//mi rende la parte senza valori dello stesso colore
            table.setDefaultRenderer(Object.class, new MyTableRenderer());//mi fa il render della tabella
    
    		initColumnSizes(table);
    			    
                    jsp.setViewportView(table);
    
    			    
     				JOptionPane.showMessageDialog(null,"Inserimento effettuato con successo", "Operazione Riuscita",JOptionPane.INFORMATION_MESSAGE);
    
    				reset(); //metodo di pulizia campi
    				}
    dove posso fare quel controllo dell'apice?
    grazie simo 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.