Excluir coluna(Jtable)

ola galera, estou fazendo uma tabela e gostaria de excluir a linha que eu selecionar

como que eu posso fazer?
segue o codigo abaixo:

afinal… vc quer excluir uma coluna ou uma linha??

é excluir a linha
=)
errei!

int row=jTable.getselectedRow();
DefaultTableModel dtm=(DefaultTableModel)jTable.getModel();

dtm.removeRow(row);

Apesar de que seria vc criar seu TableModel…mas pra uma solução mais rápida esse dai serve…
mas lembre-se sempre de implementar seu table model!
8)

eu sempre usei o DefaultTableModel… sempre atendeu minhas necessidades…

O problema do DefaultTableModel é que:

a) Ele é mais difícil de usar do que criar o seu próprio TableModel;
b) Ele mistura parte da lógica de negócio na view;
c) Ele ocupa pelo menos o dobro de espaço em memória;
d) Ele exige mais processamento;
e) Ele exige casts inseguros;
f) Ele é sincronizado;
g) Ele é menos flexível.

O problema do DefaultTableModel é que:

a) Ele é mais difícil de usar do que criar o seu próprio TableModel;
b) Ele mistura parte da lógica de negócio na view;
c) Ele ocupa pelo menos o dobro de espaço em memória;
d) Ele exige mais processamento;
e) Ele exige casts inseguros;
f) Ele é sincronizado;
g) Ele é menos flexível.[/quote]

Oi,

Perfeito como sempre =)

Em relação ao tópico, pra tudo na vida existem um add e um remove =P

Tchauzin!

O problema do DefaultTableModel é que:

a) Ele é mais difícil de usar do que criar o seu próprio TableModel;
b) Ele mistura parte da lógica de negócio na view;
c) Ele ocupa pelo menos o dobro de espaço em memória;
d) Ele exige mais processamento;
e) Ele exige casts inseguros;
f) Ele é sincronizado;
g) Ele é menos flexível.[/quote]
Não sabia destas desvantagens… obrigado por informar…
pena que eu vi teu post sobre ObjectTableModel muito tarde… seria muito custoso (em termos de tempo) pra mim readaptar todo o fonte pois praticamente todas minhas classes da camada view contém pelo menos uma JTable…
Aproveitando… eu consigo utilizar o ObjectTableModel sem alterar a camada lógica?

Voce vai ter que alterar sua lógica. Por que por exemplo onde voce tem algo assim:

String[] dadosPessoas = modelo.getRow(10);

Dai voce sabe que na coluna 0 do array é o nome no 1 a idade e etc.

Seria o seguinte

Pessoa pessoa = modelo.get(10);

Voce teria o objeto com seus getters e setters.

Muito melhor para se trabalhar.

tem essa linha abaixo:

como que eu posso fazer pra passar um objeto ja todo setado?
eu passei porem ele ficou soh na primeira coluna e apareceu isso Contato@3901c6

Mas voce ta usando o ObjectTableModel ou o Default?

Da uma olhada melhor no tutorial http://markytechs.wordpress.com/2009/05/29/objecttablemodel

segue o codigo para dar uma olhada!

[quote=Mark_Ameba]Voce vai ter que alterar sua lógica. Por que por exemplo onde voce tem algo assim:

String[] dadosPessoas = modelo.getRow(10);

Dai voce sabe que na coluna 0 do array é o nome no 1 a idade e etc.

Seria o seguinte

Pessoa pessoa = modelo.get(10);

Voce teria o objeto com seus getters e setters.

Muito melhor para se trabalhar.[/quote]
legal… eu já tinha visto o tutorial do ObjectTableModel… mas eu vi muito tarde…
qual seria a melhor forma pra mim fazer sem ter mudanças fora da view e sem usar o DefaultTableModel já que este é tão ruim?
segue um modelo de como faço atualmente… este exemplo tem uma coluna que tem um checkBox (lembrando que o código é funcional mas como informado pelo ViniGodoy parece que não é uma boa prática)…

[code]jt_permissoes.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {

        },
        new String [] {
            "ID", "Funcionalidade", "Permitir"
        }
    ) {
        Class[] types = new Class [] {
            java.lang.Object.class, java.lang.Object.class, java.lang.Boolean.class
        };
        boolean[] canEdit = new boolean [] {
            false, false, true
        };

        public Class getColumnClass(int columnIndex) {
            return types [columnIndex];
        }

        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit [columnIndex];
        }
    });[/code]

então na hora de recuperar dados (lembrando que nem sempre eu completo o objeto inteiro… passo somente alguns atributos por questão de desempenho…)

[code]DefaultTableModel model = (DefaultTableModel)jt_permissoes.getModel();
model.setNumRows(0);

	List funcs = new FuncionalidadeServiceImpl().get("");
	for (Iterator iterator = funcs.iterator(); iterator.hasNext();) {
		Funcionalidade func = (Funcionalidade) iterator.next();
		model.addRow(new Object[]{func.getCodigo(), func.getDescricao(),false});
	}[/code]

obrigado a todos…

acho que vou tomar coragem (e tempo também…) e reajustar meus projetos com ObjectTableModel… tenho ao total 4 sistemas(diferentes) já implantados… será que vale a pena esta mudança agora?

Antes tarde do que mais tarde ainda.

Voce nao precisa necessariamente usar o ObjectTableModel que eu fiz. Seria legal voce entender a responsabilidade do Model e fazer um.
Mas se nao tiver com paciencia voce pode só usar mesmo sem problemas.

consegui fazer o metodo
agora o problema seria pra buscar e alterar as linhas
alguem me sugere algo?

mas achei muito interessante o ObjectTableModel… é que eu estava acostumado a usar o DefaultTableModel mas até então não sabia de todas essas desvantagens citadas… e se é pra melhorar a performance/rendimento das aplicações eu readapto os projetos…
Só fiquei meio em dúvida em ter que alterar a camada lógica… isso foge um pouco da minha ideia pois assim estarei vinculando a camada lógica com a view mas pelo que vi existe outra solução criando instâncias de FieldResolver diretamente nas classes visuais…
e outra… eu tenho como colocar uma coluna na JTable sem vincular a coluna à um atributo de uma classe em específico? pois precisarei colocar uma coluna de checkBox onde o usuário escolhe os clientes para os quais ele deseja mandar e-mails e estes booleans não estão na classe Cliente pois são meramente visuais…
existe alguma forma de fazer isso?

@diego_sepa
Para alterar as linhas é facil, altere o objeto da lista de objetos do modelo que a tabela se altera.
Para buscar dados tem o SelectTable que também tem um um post no meu blog falando sobre isso.
Voce precisa passar uma lista de objetos que voce quer que retorne um objeto e ouvir o evento.

@erico_kl
Se voce tiver usando o AnnotationResolver voce pode passar a String como parametro “blank” que cria uma coluna sem ter dados nenhum.
Se tiver usando diretamente FieldResolver voce precisa passar como parametro o BlankHandler do pacote mark.utils.el.handler.

ok… e para criar uma coluna de checkBox… consigo fazer com ObjectTableModel?
obrigado pela ajuda…