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

    [java] JTable non modificabile

    Se creo una JTable con dei dati all'interno e la visualizzo posso facendo doppio click in un "campo" modificare quest'ultimo. Come faccio a disabilitare questo?? Grazias

  2. #2

    Re: [java] JTable non modificabile

    Originariamente inviato da zannas
    Se creo una JTable con dei dati all'interno e la visualizzo posso facendo doppio click in un "campo" modificare quest'ultimo. Come faccio a disabilitare questo?? Grazias
    Devi sovrascrivere e reiplementare opportunamente il metodo isCellEditable del TableModel associato alla JTable.
    In particolare se vuoi che nessuna cella della JTable sia modificabile ti basta iserire return false; come unica istruzione
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  3. #3
    mi fai un banale esempio così capisco meglio per cortesia?

  4. #4
    Originariamente inviato da zannas
    mi fai un banale esempio così capisco meglio per cortesia?
    codice:
    import java.awt.FlowLayout;
    
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.table.DefaultTableModel;
    
    
    public class NonEditableTable extends JTextField
    {
        private static final long serialVersionUID = 8554350982699149972L;
    
        /**
         * @param args
         */
        public static void main(String[] args)
        {
            JFrame frame = new JFrame();
            frame .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.getContentPane().setLayout(new FlowLayout());
            JScrollPane scrollPane = new JScrollPane();
            String[][] data = new String[][]{{"dato1","dato2","dato3","dato4"},
                    {"dato1","dato2","dato3","dato4"},
                    {"dato1","dato2","dato3","dato4"}};
            String[] columnNames = new String[]{"Col1","Col2","Col3","Col4"};
            JTable table = new JTable();
            scrollPane.getViewport().add(table);
            
            DefaultTableModel model = new DefaultTableModel()
            {
    
                /**
                 * 
                 */
                private static final long serialVersionUID = 1L;
    
                public boolean isCellEditable(int row, int column)
                {
                    return false;
                }
                
            }; 
            model.setDataVector(data,columnNames);
            table.setModel(model);
            frame.getContentPane().add(scrollPane);
            frame.pack();
            frame.setVisible(true);
        }
    
    
    }
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    ufff....perchè java è così complicato...... VVoVe:

  6. #6
    Originariamente inviato da zannas
    ufff....perchè java è così complicato...... VVoVe:
    Complicato java? Hai mai programamto in c ...? VVoVe:
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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.