Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517

    [JAVA] informazione sul jTable

    Salve ragazzi, ho creato questa tabella :
    codice:
    	private JTable getJTableVendite() {
    		String[] nomicolonne = {"codice",
                    "prezzo",
                    };
    
            Object[][] data = {
            {"1", "2"}
            			};
    		if (jTableVendite == null) {
    			jTableVendite = new JTable(data,nomicolonne);
    			jTableVendite.setPreferredScrollableViewportSize(new Dimension(500, 100));
    			jTableVendite.setFillsViewportHeight(true);
    		}
    		return jTableVendite;
    	}
    volevo sapere se fosse possibile aggiungere righe dinamicamente, ovvero quando scrivo in una JTextField e premo invio si aggiunge alla tabella è possibile?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Per un operazione di questo tipo è necessario utilizzare il TableModel. Se non hai particolari esigenze puoi accontentarti di quello di default. Ti faccio un esempio molto veloce:

    codice:
    DefaultTableModel model = new DefaultTableModel();
    JTable table = new JTable(model);
    
    // Aggiunta colonne
    model.addColumn("Colonna 1");
    model.addColumn("Colonna 2");
    
    // Per aggiungere una riga (magari dopo alla pressione su un pulsante che legge da un JTextField)
    Vector<String> row = new Vector<String>();
    row.add(""); // Queste sono le celle vuote
    row.add("");
    
    model.addRow(row);
    Ovviamente è il Vettore a rappresentare la riga, gli elementi che aggiungi al vettore occupano le diverse colonne (quindi se hai 4 colonne devi fare 4 row.add(""); )

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    grazie Patrick Jane funziona ed era propio quello che volevo

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    Patrick Jane è sorto un'altro problema, allora questo è il codice della tabella:

    codice:
    private DefaultTableModel model = new DefaultTableModel();
    private Vector<String> row = new Vector<String>(); 
    
    jTableVendite = new JTable(model);
    			// Aggiunta colonne
    			model.addColumn("Colonna 1");
    			model.addColumn("Colonna 2");
    mentre quello della jtextfield è:
    codice:
    jTextFieldprova = new JTextField();
    			jTextFieldprova.setBounds(new Rectangle(82, 322, 203, 39));
    			jTextFieldprova.addKeyListener(new java.awt.event.KeyAdapter() {
    				public void keyTyped(java.awt.event.KeyEvent e) {
    					System.out.println(jTextFieldprova.getText());
    					row.add(jTextFieldprova.getText());
    					model.addRow(row);
    				}
    il problema sta nel fatto che mi aggiunge le righe ma i campi sono vuoi, anche se quando li vado a stampare recupera perfettamente quello che scrivo come mai?

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Dovrei avere il codice completo...

    Comunque ogni nuova riga che vai ad aggiungere comporta una nuova istanza di row, non aggiungere sempre la stessa!
    Inoltre, devi fare tanti add() quante sono le colonne (ogni add() va ad occupare una diversa cella).
    In altre parole, se hai ad esempio 5 colonne, devi avere 5 add(). Di conseguenza non puoi chiamare addRow() ogni qual volta, ma dovresti creare prima i 5 elementi e poi aggiungerli.

    La JTable dove si trova? Se non lo hai fatto, mettila all'interno di un JScrollPane, e questo in un JPanel.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    no no quello l'ho fatto infatti mi funziona benissimo e aggiunge anche lo scroll pane dove voglio io, scusa perchè dovrei creare una nuova istanza se il metodo add aggiunge un nuovo elemento dopo l'ultimo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    517
    ok ho risolto , era sbagliato il mio ragionamento ho seguito i tuoi consigli...
    grazie ancora

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Ottimo.

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.