Duvida com Jtable e TableModel

5 respostas
renato_ramos

Oi gente…

eu criei um modelo de uma tabela e funcionou… fiquei surpreso… de primeira \o/

masss… como nd é perfeito sempre vem algo errado…

a tabela vem mas… o titulo da coluna vem escrito somente “A”… onde eu mudo isso??

pergunta besta essa minha… mas não encontrei nada por aih a fora.

e outra coisa… como eu faço pra pegar o valor de uma linha selecionada??

mt obrgado!!

5 Respostas

ViniGodoy

Sobrescreva o método getColumnName, no seu TableModel.

Pode postar o código do seu TableModel aqui?

A tabela também fornece os método getSelectedRow() e getSelectedRows(). Aí é só perguntar para o seu model que objeto está naquela linha.

renato_ramos

valeu pela atencao vini

aqui esta o tablemodel

public class ModeloTabelaQuestao extends AbstractTableModel
{
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    private QuestaoFacade questaoFacade = (QuestaoFacade) context.getBean("questaoFacade");
    private ArrayList questaoLista = new ArrayList();
    private String[] colunas = {"Questao"};

    public ModeloTabelaQuestao()
    {
        questaoLista.addAll(questaoFacade.obterTodos());
        fireTableDataChanged();
    }

    public void addQuestao(Questao questao)
    {
        questaoLista.add(questao);
        fireTableDataChanged();
    }

    public void addListaQuestao(List list)
    {
        questaoLista.addAll(list);
        fireTableDataChanged();
    }

    public void LimparDados()
    {
        questaoLista = new ArrayList();
        fireTableDataChanged();
    }

    public int getRowCount() {
        return questaoLista.size();
    }

    public int getColumnCount() {
        return colunas.length;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        Questao q = (Questao) questaoLista.get(rowIndex);

        switch(columnIndex)
        {
            case 0:
                return q.getDescQuestao();
            default:
                return null;
        }
    }

}

eu peguei de um exemplo no forum… mas eu qru so uma coluna… agora escrevendo esse post… estava pensado pq eu não estou usando lista 'oO…

pq eu quero um daqueles negocios de adicionar, remover de uma lista para outra…

valeu!

ViniGodoy

Você pode criar métodos práticos como:

public Questao getQuestao(int linha) { return questaoLista.get(linha); }

Outra coisa, ao invés de sempre usar o fireTableDataChanged, use também o fireTableRowAdded, removed, etc.

renato_ramos

tentei isso

mas eu tive que fazer cast para questao

public Questao getQuestao(int linha)
    {
        return (Questao) questaoLista.get(linha);
    }

iah dah exeception de Array outofbound.

eu tenho que pegar por esse tipo para que eu possa settar ele em outro objeto mais tarde… mas está complicado =/

tentei com a lista… e tambem não consegui fazer cast

valeu!

renato_ramos

kkkk

um dia eu ainda me mato… tava fazendo o teste errado xD

aqui o codigo

//metodo para inserir
    public void InserirQuestao()
    {
        Questao questao = (Questao) context.getBean("questao");
        questao = modeloTabelaQuestao.getQuestao(jTableQuestao.getSelectedRow());
        listModelQuestaoSelecionada.addElement(questao);
    }

e o metodo do modelo ^^’

public Questao getQuestao(int linha)
    {
        return (Questao) questaoLista.get(linha);
    }

muito obrigado Vini pela atencao… desculpa a enxecao de saco ^^’

Criado 5 de novembro de 2009
Ultima resposta 5 de nov. de 2009
Respostas 5
Participantes 2