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

    [JAVA] AIUTO - valori Object

    Salve a Tutti....
    avrei bisogno di un aiuto in qunato non riesco a settare i valori per un Object destinato ad una JTable, come vedete dal seguente
    codice:
    ........
    
    	public Object[][] getRowData() {
    		
    		System.err.println("getIdElenco.length= "+getIdElenco().length);
    		
    		int lung = getIdElenco().length;
    
    		Object[][] rowData = new Object[lung][];
    
    		String[] id = getIdElenco(); //<--- PRIMA COLONNA VALORI
    		String[] inout = getInoutElenco(); //<--- SECONDA COLONNA VALORI
    		String[] importo = getImportoElenco(); //<--- TERZA COLONNA VALORI
    		String[] data = getDataElenco(); //<--- QUARTA COLONNA VALORI
    		String[] motivo = getMotivoElenco(); //<--- QUINTA COLONNA VALORI
    		String[] categoria = getCategoriaElenco(); //<--- SESTA COLONNA VALORI
    		String[] saldo = getSaldoElenco(); //<--- SETTIMA COLONNA VALORI
    		
    		for(int i=0; i<lung; i++) {
    			rowData[i][] = {{id[i],inout[i],importo[i],data[i],motivo[i],categoria[i],saldo[i}};
    		};
    		return rowData;
    	}
    
    ........
    Ho provato anche così ma no va...
    codice:
    Object[][] rowData = {getIdElenco(),getInoutElenco(),getImportoElenco(),getDataElenco(),getMotivoElenco(),getCategoriaElenco(),getSaldoElenco()};

  2. #2
    Sembra che sia riuscito a settare l'Object[][], ma mi da errore per la JTable.....

    Classe della grafica della JTable.....
    codice:
    package grafica;
    	 
    	import java.awt.event.MouseAdapter;
    	import java.awt.event.MouseEvent;
    	import javax.swing.JTable;
    	import javax.swing.JFrame;
    	import javax.swing.JScrollPane;
    	import javax.swing.table.TableModel;
    
    import database.RegistroCassa;
    	 
    	public class RegistroGraf extends JFrame {
    	    /**
    		 * 
    		 */
    		private static final long serialVersionUID = -7576128986849460543L;
    		private JTable table;
    	 
    	    public RegistroGraf(RegistroCassa registro) {
    	    	super("REGISTRO CASSA");
    	 
    	        Object[] columnHeaders = {"ID","OPERAZIONE","IMPORTO","DATA","MOTIVO","CATEGORIA","SALDO"};
    	        Object[][] rowData = registro.getRowData();	        
    	        
    	        System.out.println(rowData.length);
    	        System.out.println(rowData[2][2]);
    
    	        this.table = new JTable(rowData, columnHeaders);
    	        this.table.setFillsViewportHeight(true);
    
    	        this.table.addMouseListener(
            		new MouseAdapter() { @Override
    	                public void mouseClicked(MouseEvent event) {
    	                    JTable table = (JTable)event.getSource();
    	                    TableModel model = table.getModel();
    	                    int nRow = model.getRowCount();
    	                    int nCol = model.getColumnCount();
    
    	                    System.out.println(nRow);
    	                    System.out.println(nCol);                   
    	                    
    	                    for(int i = 0; i < nRow ; i++) {
    	                        for(int j = 0; j < nCol; j++) {
    	                            String colName = model.getColumnName(j);
    	                            Object value = model.getValueAt(i, j);
    	                            System.out.println(colName + "=" + value);
    	                        }
    	                        System.out.println();
    	                    }
    	                }
            		}
    	        );
          
    	        this.getContentPane().add(new JScrollPane(this.table));
    	        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	        this.setSize(300, 300);
    	        this.setLocationRelativeTo(null);
    	    }
    } //FINE CLASSE
    .... e la classe (RegistroCassa) che passa i valori a rowData
    codice:
    package database;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class RegistroCassa {
    	Database registro = new Database();
    	private ResultSet dati;
    	private String[] id, inout, importo, data, motivo, categoria, saldo;
    	
    	public RegistroCassa() {
    		
    	}
    	
    	public void setDati() throws SQLException {
    		dati = registro.readDB("SELECT * FROM registro");
    		String xId = "";
    		String xInout = "";
    		String xImporto = "";
    		String xData = "";
    		String xMotivo = "";
    		String xCategoria = "";
    		String xSaldo = "";
    		try {
    			while (dati.next()) {
    				xId += dati.getString("ID")+"|";
    				xInout += dati.getString("inOut")+"|";
    				xImporto += dati.getString("importo")+"|";
    				xData += dati.getString("data")+"|";
    				xMotivo += dati.getString("motivo")+"|";
    				xCategoria += dati.getString("categoria")+"|";
    				xSaldo += dati.getString("saldo")+"|";
    			}
    		} catch (SQLException e) {
    			System.err.println(e.getMessage());
    		}
    		setId(xId.split("\\|"));
    		setInout(xInout.split("\\|"));
    		setImporto(xImporto.split("\\|"));
    		setData(xData.split("\\|"));
    		setMotivo(xMotivo.split("\\|"));
    		setCategoria(xCategoria.split("\\|"));
    		setSaldo(xSaldo.split("\\|"));
    		registro.readClose();
    	}
    	
    	public Object[][] getRowData() {
    		for (int i=0; i<getIdElenco().length; i++) {
    			rowData[i] = {{id[i]},{inout[i]},{Importo[i]},{data[i]},{motivo[i]},{categoria[i]},{saldo[i]}};
    		}*/
    		
    		Object[][] rowData = {getIdElenco(),getInoutElenco(),getImportoElenco(),getDataElenco(),getMotivoElenco(),
    								getCategoriaElenco(),getSaldoElenco()};
    		return rowData;
    	}
    
    ............
    e questo è l'errore che mi da senza visualizzare la JTable
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3
    	at javax.swing.JTable$1.getValueAt(Unknown Source)
    	at javax.swing.JTable.getValueAt(Unknown Source)
    	at javax.swing.JTable.prepareRenderer(Unknown Source)
    	at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
    	at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
    	at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
    	at javax.swing.plaf.ComponentUI.update(Unknown Source)
    	at javax.swing.JComponent.paintComponent(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JViewport.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at javax.swing.JLayeredPane.paint(Unknown Source)
    	at javax.swing.JComponent.paintChildren(Unknown Source)
    	at javax.swing.JComponent.paintToOffscreen(Unknown Source)
    	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
    	at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
    	at javax.swing.RepaintManager.paint(Unknown Source)
    	at javax.swing.JComponent.paint(Unknown Source)
    	at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
    	at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
    	at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
    	at java.awt.Container.paint(Unknown Source)
    	at java.awt.Window.paint(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.access$700(Unknown Source)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$000(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.awt.EventQueue$3.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Purtroppo non capisco dov'è l'errore!!!!
    Grazie per l'attenzione, saluti

  3. #3
    Ho risolto assegnando i dati al JTable così
    codice:
    for(int i=0; i<rowData.length; i++) {
        model.addColumn(columnHeaders[i]);
    }
    
    for(int i=0; i<numRow; i++) {
         model.addRow(new Object[] {rowData[0][i],rowData[1][i],rowData[2][i],rowData[3][i],rowData[4][i],rowData[5][i],rowData[6][i]});	
    }
    Grazie lo stesso a Tutti.

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.