Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726

    [JAVA] 3 domandine

    1)

    codice:
    tabellaCliente = new JTable(valCella,nomeColonna);
    scroll = new JScrollPane(tabellaCliente);
    scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
    scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    add(scroll);
    Non vengono visualizzate nelle JTable i nomi dei campi (id, nome,cognome...) e lo scroll non funge, ne verticalmente ne orizzontalmente e non mi capacito del perchè.

    2)

    Vorrei sapere come faccio a far visualizzare quei messaggi simili agli alert in HTML, che permettono di informare l'utente ad esempio quando non è stato compilato un campo di un form.

    3)

    (il più rognoso)

    Ho una JTable alla quale tramite il costruttore passo tutti i record presenti in una tabella di un DB SQL.
    Ho la necessità ora di dover aggiungere per ogni record della tabella un pulsante JRadioButton che una volta schiacciato faccia apparire una finestra.
    Ma:
    - come faccio a far visualizzare un oggetto JRadioButton, cioè istanzio un array di JRadioButton ma poi?
    - al radiobutton devo assegnare il valore ID del record che si sta ora gestendo, ma non mi sembra ci sia un metodo apposito.

    codice:
    while (rs.next())
    { 
      k = 0;
      valCella[i][k] = rs.getInt("ID");
      
      valCella[i][0] = ...devo inserirgli l'oggetto grafico e passargli il valore di valCella[i][k]
    
     k++;
    Grazie dell'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    up

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Per il punto 2 ho risolto.

    Il punto 3 è ancora quello che mi mette più in difficoltà.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Perchè istanzi un array di JRadioButton?
    E poi, a cosa ti serve avere un JRadioButton su ciascuna riga della tabella?

    Un gruppo di JRadioButton ha senso di essere istanziato se ci sono più valori fra cui scegliere e solo uno di essi può essere scelto.
    Se il tuo scopo è quello di permettere all'utente di scegliere uno ed un solo record fra quelli presenti nel DB, allora puoi usare un controllo qualsiasi (JButton o JCheckBox), associando a ciascuno di essi lo stesso ActionListener.


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Ok, ma come faccio ad istanziarlo prima di tutto nella JTable e poi ad assegnargli un valore con cui andrò a lavorare nella classe che gestisce l'evento


    Per la domanda 1 sapresti dirmi qualcosa??


    Grazie 1000 per l'interessamento

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    pls Lele, che devo fà??

    Anche se mettessi un JButton (ma anche un JRadioButton sarebbe uguale) all'interno della tabella:

    valCella[i][k] = new JButton("Modifica");

    il risultato non sarebbe quello di far visualizzare un bottone, ma solo quello di stampare a video una stringa contenente info di quell'oggetto.

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    1) Dal tuo Recordset prelevato dal DB costruisci un vettore (o un array, come vuoi) di Record che poi passerai al TableModel della tua JTable
    2) Quando l'utente clicca sul pulsante della i-esima riga, verrà invocato il metodo actionPerformed() (che può anche essere unico per tutti i pulsanti)
    3) Nell'actionPerformed() otterrai l'indice della riga selezionata usando il il metodo tuaJTable.getSelectedRow()
    4) A questo punto, il valore restituito dal metodo precedente lo utilizzerai per indicizzare il vettore (o l'array) che hai costruito al punto 1 per ottenere il Record esatto che è stato selezionato.

    A questo punto hai tutte le informazioni da poter visualizzare.


    PS: per facilitarti le cose, fai implementare ActionListener alla classe che contiene la JTable.


    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Scusami, ma non mi è ancora tanto chiaro

    Innaznitutto ti faccoi vedere il mio codice:

    codice:
    try
       {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn = DriverManager.getConnection("jdbc:odbc:db");
        Statement st = conn.createStatement();
        ResultSet rs;
         
        
         rs = st.executeQuery("SELECT COUNT(*) FROM Clienti");
         int i=0;
    
          if(rs.next())
           i = rs.getInt(1);
         
         valCella = new Object[i][10];
    	 i = 0;
               
         rs = st.executeQuery("SELECT * FROM Clienti"); 
        	
    		  	 
    	 while (rs.next())
    	 { 
          k = 0;
          num++;
          
          valCella[i][k] = rs.getInt("IDCliente");
          k++;
           
          valCella[i][k] = rs.getString("nome");
          k++;
                  
          valCella[i][k] = rs.getString("cognome");
          k++;
          
                 
          valCella[i][k] = rs.getString("residenza");
          k++;
          
            
          valCella[i][k] = rs.getString("indirizzo");
          k++;
          
            
          valCella[i][k] = rs.getInt("civico");
          k++;
        
          valCella[i][k] = rs.getInt("telefono");
          k++;  
         
               
          valCella[i][k] = rs.getString("email");
          k++;  
           
          i++;
         }
        System.out.println("Numero record presenti: " + num);
    }
    .
    .
    .
    1) Allora, innanzitutto perchè devo usare un Recordset??
    2) Scusa, ma siccome ogni record ha anche un ID nel caso ne cancellassi uno il valore della riga della tabella selezionata non sarebbe automaticamente invalidata?
    3) Perdonami, sono un po' di legno, ma...non ho ancora capito come far visualizzare un oggetto JRadioButton/JButton...

    Grazie per la pazienza

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Innanzitutto ho scritto io una porcheria: ResultSet e non Recordset (ogni linguaggio usa i suoi termini...).

    Poi, a noi non ce ne frega proprio niente dell'ID: quando tu carichi i dati dal DB ottieni un ResultSet che ha N record. Nella tabella, di conseguenza, avrai esattamente N righe.
    La terza riga della tabella corrisponderà esattamente con il terzo record del ResultSet (qualsiasi sia l'ID). Di conseguenza corrisponderà anche con il terzo elemento del tuo vettore (o array, come vuoi).

    Per evitare di fare cento mila accessi al DB, esegui una query che prenda tutti i dati di cui hai bisogno.
    Quando hai ottenuto il ResultSet, tutti i dati li vai a mettere nel tuo vettore.
    E' sempre dal Vettore, poi, che preleverai i dati da visualizzare quando l'utente clicca.

    Per far visualizzare un oggetto di tipo JButton, JRadioButton o quel che vuoi devi andare a costruirti il tuo Renderer per la tabella (per ulteriori informazioni in merito, ti rimando ai tutorial della Sun, perchè il discorso è lunghetto).


    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Devo dire di averci capito poco poco

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.