Olá Janaine! Tente criar uma classe extends AbstractTableModel ou implements TableModel e mude o método boolean isCellEditable(int rowIndex, int columnIndex). E depois "sete" (verb to set) o model no seu JTable assim: jTabble.setModel(um objeto da sua classe modelo);
Ex: Um programa que testa a classe MyTableModel mais abaixo // Arquivo TesteTableModel.java import javax.swing.*; import java.awt.*; public class TesteTableModel extends JFrame { JTable table = new JTable(); JScrollPane scrollPane = new JScrollPane(); MyTableModel tableModel = new MyTableModel(); public TesteTableModel() { table.setModel(tableModel); // adiciona 10 linhas. Note que as operações são feita no modelo for(int i = 0; i < 10; i++) tableModel.addRow(); // adiciona 3 colunas tableModel.addColumn("coluna 2"); tableModel.addColumn("coluna 3"); tableModel.addColumn("coluna 4"); scrollPane.getViewport().add(table); this.getContentPane().add(scrollPane); this.setDefaultCloseOperation(3); this.setSize(300,300); this.show(); } public static void main(String arg[]) { new TesteTableModel(); } } // Arquivo MyTableModel.java import javax.swing.table.AbstractTableModel; import javax.swing.event.TableModelEvent; import java.util.Vector; /** * @author Willian Charles Balmant */ public class MyTableModel extends AbstractTableModel { Vector rows = new Vector(); // field que guardará os valores das linhas do JTable Vector columnHeaders = new Vector(); // field que guardará os nomes das colunas do JTable public MyTableModel() { Vector aux = new Vector(); aux.addElement(""); columnHeaders.addElement("coluna 1"); rows.addElement(aux); fireTableChanged(null); } /** esté é o método que vai dizer se a coluna é editável ou não */ public boolean isCellEditable(int rowIndex, int columnIndex) { if(columnIndex == 0) return false; return true; } /** quantas linhas tem a tabela? */ public int getRowCount() { return rows.size(); } /** quantas colunas tem a tabela? */ public int getColumnCount() { System.out.println("ColumnCount = " + columnHeaders.size()); return columnHeaders.size(); } /** qual o valor da célula(x, y) ? */ public Object getValueAt(int rowIndex, int columnIndex) { return ((Vector)rows.elementAt(rowIndex)).elementAt(columnIndex); } /** retorna a classe da coluna * para esse caso estou supondo que serão todas Object */ public Class getColumnClass(int columnIndex) { return Object.class; } /** qual é o nome da coluna? */ public String getColumnName(int column) { return columnHeaders.elementAt(column).toString(); } /** retorna todos os nomes das colunas em um array de Strings */ public String[] getColumnNames() { String [] aux = new String[getColumnCount()]; for(int i = 0; i < getColumnCount(); i++) aux[i] = columnHeaders.elementAt(i).toString(); return aux; } public Vector getRows() { return rows; } /** o que fazer quando a célula for editada */ public void setValueAt(Object aValue, int rowIndex, int columnIndex) { ((Vector)rows.elementAt(rowIndex)).setElementAt(aValue, columnIndex); } /** você passa o nome e ela retorna o número da coluna */ public int findColumn(String columnName) { return columnHeaders.indexOf(columnName); } /** adiciona 1 linha */ public void addRow() { Vector newRow = new Vector(); for (int i = 1; i <= getColumnCount(); i++) { newRow.addElement(""); } rows.addElement(newRow); // Avisa os listeners que a nova tabela chegou. fireTableChanged(new TableModelEvent(this)); // Avisa os listeners que a nova tabela chegou. } /** adiciona uma linha antes da linha index */ public void addRowAt(int index) { Vector newRow = new Vector(); for (int i = 1; i <= getColumnCount(); i++) { newRow.addElement(""); } rows.add(index, newRow); // Avisa os listeners que a nova tabela chegou. fireTableChanged(new TableModelEvent(this)); } /** remove a linha index */ public void removeRow(int index) { rows.removeElementAt(index); // Avisa os listeners que as linha de index até index foram deletadas fireTableRowsDeleted(index, index); } /** adiciona uma nova coluna com o nome columnName */ public void addColumn(String columnName) { for(int i = 0; i < getRowCount(); i++) { ((Vector)rows.elementAt(i)).addElement(""); } columnHeaders.addElement(columnName); fireTableChanged(null); } /** remove a coluna index */ public void removeColumn(int index) { columnHeaders.removeElementAt(index); for(int i = 0; i < getColumnCount(); i++) { ((Vector)rows.elementAt(i)).remove(index); } fireTableChanged(null); } } Espero ter ajudado! Willian Charles Balmant ----- Original Message ----- From: Janaine Cristiane de Souza To: Lista Java Sent: Sunday, January 13, 2002 1:13 PM Subject: [java-list] JTable Ola. Eu criei um JTable com apenas uma coluna preenchida e as demais serão preenchidas, posteriormente, pelo usuário. Gostaria de saber o que devo fazer para esta coluna não ser alterada pelo usuario. Agradeco desde ja, Janaine ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] ------------------------------------------------------------------------- _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------