Bloquear edicao de tabela

boa tarde
tenho um problema generco acho que nao é preciso eu anexar nenhum Script

meu problema e o seguinte tenho uma classe generica com uma tabela que e carregada diretamente do banco de dados ou seja nao importa quantas colunas eu tenho pois ela me pucha todas as colunas e informacoes quando eu a abro.

eu nao quero que quando eu cliko nela ela abre a celula para edicao, pois nao sera possivel editar ali pois e so uma tela de busca. Alem de impedir que eu edite seus valores eu quero que a linha que tiver o curso posicionado mude de cor.

caso precise eu estarei inserindo a o fonte. para analise.

Olá JOCIMA!

Dica importante: Não escreva o título do post em letras maiúsculas. Esta é uma das regras do Fórum e assim evita
problemas com os moderadores do Fórum. :wink:

Sobre o seu problema, creio que essas discussões já criadas aqui no GUJ poderia te ajudar:

Edição das linhas:
http://www.guj.com.br/posts/list/63132.java
http://www.guj.com.br/posts/list/64545.java

Colorir linhas:
http://www.guj.com.br/posts/list/63893.java

Dá uma olhada e vê se ajuda com o seu problema.

Abraços!

[quote=AlexandreGama]Olá JOCIMA!

Dica importante: Não escreva o título do post em letras maiúsculas. Esta é uma das regras do Fórum e assim evita
problemas com os moderadores do Fórum. :wink:

Sobre o seu problema, creio que essas discussões já criadas aqui no GUJ poderia te ajudar:

Edição das linhas:
http://www.guj.com.br/posts/list/63132.java
http://www.guj.com.br/posts/list/64545.java

Colorir linhas:
http://www.guj.com.br/posts/list/63893.java

Dá uma olhada e vê se ajuda com o seu problema.

Abraços![/quote]

Ai brigado pelas dicas mas nao deu pois eu nao tenho um model. Veja so minha classe.

package CamadaVisao;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.sql.Types;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.table.TableModel;

import CamadaBD.ConexaoMySql;

public class BuscaCadastro extends JFrame {
	JTable tblBusca;
	JScrollPane scrol;
	JTextField txfBusca;
	JPanel pnTela;
	JPanel pnScrol;
	JPanel pnBusca;
	int Coluna;
	int Linha;

	public BuscaCadastro() throws Exception{
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		setVisible(true);
		setLayout(null);
		setName("CADASTRO DE CLIENTE");
		setSize(810, 810);
		ConexaoMySql.getConexaoMySql();
		{
			pnTela = new JPanel();
			getContentPane().add(pnTela);
			pnTela.setSize(800, 800);
			pnTela.setLayout(null);
			pnTela.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
		}
		{
			pnBusca = new JPanel();
			pnTela.add(pnBusca);
			pnBusca.setBounds(5, 5, 800, 50);
			pnBusca.setLayout(null);
			pnBusca.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
		}
		
		{
			txfBusca = new JTextField();
			pnBusca.add(txfBusca);
			txfBusca.setBounds(5, 5, 800, 25);
		}
		{
			pnScrol = new JPanel();
			pnTela.add(pnScrol);
			pnScrol.setBounds(5, 60, 800, 500);
			pnScrol.setLayout(null);
			pnScrol.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
		}
		geraTabela();

	}
	public void geraTabela(){
		try{
			Vector<String>cabecallo = new Vector<String>();
			Vector<Vector>linhas = new Vector<Vector>();
			ConexaoMySql.resultSet = ((Statement) ConexaoMySql.statement).executeQuery("SELECT * FROM aluno");
			ConexaoMySql.resultSet.next();
			ResultSetMetaData resulSetMetaData = ConexaoMySql.resultSet.getMetaData();
			for(int cont = 1; cont <= resulSetMetaData.getColumnCount(); ++cont)
				cabecallo.addElement(resulSetMetaData.getColumnName(cont));
			do{
				Vector<Object>linhaAtual = new Vector<Object>();
				for(int cont = 1; cont <= resulSetMetaData.getColumnCount();cont++){
					switch(resulSetMetaData.getColumnType(cont)){
					case Types.INTEGER: linhaAtual.addElement(ConexaoMySql.resultSet.getString(cont));break;
					case Types.VARCHAR: linhaAtual.addElement(ConexaoMySql.resultSet.getString(cont));break;
					case Types.CHAR: linhaAtual.addElement(ConexaoMySql.resultSet.getString(cont));break;
					case Types.DOUBLE: linhaAtual.addElement(ConexaoMySql.resultSet.getString(cont));break;
					case Types.DATE: linhaAtual.addElement(ConexaoMySql.resultSet.getDate(cont));break;
					}
				}
				linhas.addElement(linhaAtual);
			}
			while (ConexaoMySql.resultSet.next());
			tblBusca =  new JTable(linhas, cabecallo);
			scrol = new JScrollPane(tblBusca);
			scrol.setBounds(5, 4, 800, 600);
			pnScrol.add(scrol);



			tblBusca.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if (e.getClickCount() == 1) { 
					Coluna = tblBusca.getSelectedColumn();
					Linha = tblBusca.getSelectedRow();
					txfBusca.setText((String) tblBusca.getModel().getValueAt(Linha, getX()));  

					
				}
				}
			});


		}catch (Exception e) {
			JOptionPane.showMessageDialog(null, "ERRO AO INSERIR DADOS "+e.getMessage());

		}
	}

}

É impossível ter um JTable sem ter um model. No mínimo você tem o (argh) DefaultTableModel.

Pelo que vi no seu nome de pacote, você está tentando fazer o padrão MVC. Entretanto, você está misturando a camada de acessos a dados (que contém informações do model) com a visão. E isso fere totalmente o padrão.
Eu recomendo que você aprenda a montar o seu TableModel, seguindo os links da minha assinatura. Não só o código vai ficar muito mais limpo e seguindo o MVC, como você já aprenderá a deixar a tabela não editável.

Sem falar que você deixa de usar esse monte de Vector, evita casts e tem bem menos trabalho.

Outra coisa. Se isso é um cadastro de alunos, você deveria ter uma classe chamada Aluno.
Dê uma olhada nesse tópico, que explica um pouco da organização geral das classes e do model:
http://www.guj.com.br/posts/list/221984.java#1136413