Interface de tabela

3 respostas
M

Eu preciso implementar um algoritmo cuja a interface deve ser uma tabela de tamanho variado dependendo do que o uisuário quer, e depois que ele preencher esta tabela devo ter acesso a cada linha dessa tabela para realizar alguns cálculos, como devo tratar isso, quem souber trabalhar com isso ajude-me, obrigda

3 Respostas

I

Este número variado é em termos de linha e colunas? Quando te refers a interface é GUI ou estrutura “interface”?

M

a interface é interfac com o usuário, e a tabela pode variar tanto no número de colunas quanto no de linhas

I

A construção do JTable é baseada na estrutura do TableModel dela, ou seja, justamente o número de colunas e linhas. Creio que existam diversas formas de fazê-lo. Uma delas é tu escrevendo o teu próprio TableModel.

public class MyTableModel extends AbstractTableModel() {
    private List header = new ArrayList();
    private List values = new ArrayList();

    public void setHeader(final String headerName) {
         header.add(headerName)
    }

    public String getHeader(final int index) {
        return (String) header.get(index);
    }

    public void removeHeader(final int index) {
        header.remove(index);
    }

    public void addValue(Object value) {
        values.add(value);
    }

    public void removeValue(int index) {
        values.remove(index);
    }

    public int getColumnCount() { return header.size(); }

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

    public Object getValueAt(int row, int col) { 
         Pessoa p = (Pessoa) values.get(row);
         switch (col) {
             case 0: p.getNome(); break;
             case 1: p.getCargo(); break;
             //...
             case n: p.getSobrenome(); break;             
         }
    }

};

//...
JTable table = new JTable(new MyTableModel());
JScrollPane scrollpane = new JScrollPane(table);
//...

Sempre que os dados forem alterados o modelo tem de ser revalidado.

//...
table.revalidate();
table.repaint();
//...

Este modelo dá pra melhorar mas de forma sucinta é isto aí. T+

Criado 29 de novembro de 2006
Ultima resposta 29 de nov. de 2006
Respostas 3
Participantes 2