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

    JTable: validare input celle

    Ciao ragazzi,

    le ho davvero provate tutte, ma non capisco proprio come fare a validare l'input dell'utente su una cella di JTable. Sulla documentazione ufficiale (http://java.sun.com/docs/books/tutor...nts/table.html) c'è un esempio, ma si utilizza un array bidimensionale per caricare i dati che verrano visualizzati in seguito. Io invece utilizzo semplicemente un AbstractTableModel.

    In particolare, vorrei che in una colonna vengano inseriti soltanto dati numerici nell'intervallo 0-100, mentre in un'altra dati double con solo due cifre decimali.

    Non posto codice, perchè davvero non ne sono riuscito a creare! Potreste aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Basta che come editor per quelle colonne metti dei textfield in cui validi i dati che vuoi che siano inseriti.
    al volante son nervoso

  3. #3
    Grazie Rubox. Potresti aiutarmi anche con del codice?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Google ti sa aiutare più di me.
    al volante son nervoso

  5. #5
    google mi sta per bannare per quante volte gli ho chiesto aiuto!

    Comunque ho trovato questo codice ma non ho ben capito come implementarlo..

    Codice PHP:
    JTable table = new JTable(); 
            
            
    // Add some data... 

    int vColIndex 0
            
    TableColumn col table.getColumnModel().getColumn(vColIndex); 
            
    col.setCellEditor(new MyTableCellEditor());

    public class 
    MyTableCellEditor extends AbstractCellEditor implements TableCellEditor 
                
    // This is the component that will handle the editing of the cell value 
                
    JComponent component = new JTextField(); 
                
    // This method is called when a cell value is edited by the user. 
                
    public Component getTableCellEditorComponent(JTable tableObject valueboolean isSelectedint rowIndexint vColIndex) { 
                    
    // 'value' is value contained in the cell located at (rowIndex, vColIndex) 
                    
    if (isSelected) { // cell (and perhaps other cells) are selected 
                        
                    
    }
                    
    // Configure the component with the specified value 
                    
    ((JTextField)component).setText((String)value);  
                    
    // Return the configured component return component; 
                   
    return component
                } 
                
                
    // This method is called when editing is completed. 
                // It must return the new value to be stored in the cell. 
                
    public Object getCellEditorValue() { 
                    return ((
    JTextField)component).getText(); 
                } 
            } 
    Ad esempio, se volessi validare un numero in ingresso che non debba contenere più di 3 cifre?

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.