Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654

    [JAVA] JTable con celle non editabili

    Come si fa a rendere non editabili tutte le celle di una JTable?
    Maddalena... Perché proprio Iacchetti!...

  2. #2
    Se non ricordo male devi crearti una classe che implementa TableModel e implemntare i vari metodi , fra cui boolean isCellEditable() e gli fai ritornare sempre false.

    qui
    trovi un tutorial per il TableModel
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    Io ho gia una tabella nella mia applicazione ed ho usato il DefaultTableModel, posso comunque effettuare il blocco dell'editing delle celle?
    Maddalena... Perché proprio Iacchetti!...

  4. #4
    No , devi crearti una classe tua che implementi TableModel ed usarla al posto del defaultTableModel .
    Oppure se vuoi ti copia la classe defaultTablemodel e cambi il metodo isCellEditable(int row,int column) e gli fai ritornare sempre false

    mentre quel metodo della classe DeafultTableModel ritorna sempre true

    Ciauz

    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  5. #5
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    Scusa la mia ignoranza, ma sono un novellino di Java...
    Cosa intenti per:

    ti copia la classe defaultTablemodel e cambi il metodo isCellEditable(int row,int column) e gli fai ritornare sempre false
    Grazie ancora per l'aiuto, mi rendo conto che non è facile aiutare uno che ancora ne capisce pochissimo...
    Maddalena... Perché proprio Iacchetti!...

  6. #6
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    up:quote:
    Maddalena... Perché proprio Iacchetti!...

  7. #7
    In pratica crei una tua classe che implementa TableModel o che estenda AbstractTableModel :
    codice:
    import java.util.*;
    import javax.swing.table.*;
    
    public class CalendarioTableModel extends AbstractTableModel{
    private Vector row,col;
    public CalendarioTableModel(Vector row,Vector col){
      this.row=row;
      this.col=col;
    }
      public String getColumnName(int c)
        {
           return (String)col.get(c);
        }
    
        public Class getColumnClass(int c)
        {
          return ((Vector)row.get(0)).get(c).getClass();
        }
    
        public int getColumnCount()
        {
           return col.size();
        }
    
        public int getRowCount()
        {
           return row.size();
        }
    
        public Object getValueAt(int r, int c)
        {
           return (String)((Vector)row.get(r)).get(c);
        }
    
        public void setValueAt(Object obj, int r, int c)
        {
           ((Vector)row.get(r)).setElementAt(obj,c);
        }
    
        public boolean isCellEditable(int r, int c)
        {
           return false;
       }
    }
    Una cosa del genere
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  8. #8
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    Grazie, se non ci riesco adesso meglio che mi dia all'ippica!
    :metallica
    Maddalena... Perché proprio Iacchetti!...

  9. #9
    Scusate ma visto che siete entrati in discorso come faccio a settare la larghezza delle colonne nell'Abstract Table quindi senza che questa me lo faccia in automatico

  10. #10
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    Ti posto il codice che ho usato per creare la mia tabella


    //Creo la tabella dell'ordine
    final Object[] intestazioneTab = {"Nome File", "Formato", "Tipo Carta", "Copie"};

    model = new MyDefaultTableModel(intestazioneTab, 0);
    ordine = new JTable(model);


    //Imposto attributi per le colonne della tabella
    TableColumn ColFile = ordine.getColumn("Nome File");
    DefaultTableCellRenderer ColFileRenderer = new DefaultTableCellRenderer();
    ColFile.setPreferredWidth(110);

    TableColumn ColFormato = ordine.getColumn("Formato");
    DefaultTableCellRenderer ColFormatoRenderer = new DefaultTableCellRenderer();
    ColFormatoRenderer.setHorizontalAlignment(JLabel.C ENTER);
    ColFormato.setCellRenderer(ColFormatoRenderer);
    ColFormato.setPreferredWidth(85);


    TableColumn ColTipo = ordine.getColumn("Tipo Carta");
    DefaultTableCellRenderer ColTipoRenderer = new DefaultTableCellRenderer();
    ColTipoRenderer.setHorizontalAlignment(JLabel.CENT ER);
    ColTipo.setCellRenderer(ColTipoRenderer);
    ColTipo.setPreferredWidth(60);

    TableColumn numbersColumn = ordine.getColumn("Copie");
    DefaultTableCellRenderer numberColumnRenderer = new DefaultTableCellRenderer();
    numberColumnRenderer.setHorizontalAlignment(JLabel .CENTER);
    numbersColumn.setCellRenderer(numberColumnRenderer );
    numbersColumn.setPreferredWidth(40);
    Maddalena... Perché proprio Iacchetti!...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.