JTable (grid)

Alguém conhece algum objeto no swing que faça o que o JTable faz só que determinando valores de células (linhas x colunas)?
Algo bem simples mesmo.

Ahn?!

Também não entendi…

Um JTable no estilo mais simples de um grid.
Algo como:

Onde x e y seria linha e coluna.

Me refiro ao fato de popular um JTable, mas de maneira simples, sem ficar recorrendo a classes e etc.

Antes de mais nada, eu conheço o JTable. Estou até desenvolvendo um objeto do jeito que informei acima. só queria saber se já existe algo pronto.
Às vezes eu acho o JTable lerdo demais pra ficar populando (no sentido produtividade).

O DefaultTableModel não é assim?

Mas, ainda prefiro usar os models de maneira correta. Ficar setando strings tem outros problemas.

O pessoal do NetBeans disponibilizou um híbrido de JTable com JTree. Veja o artigo de Geertjan Wielenga na JavaLobby.

Para exemplo de uso, veja: Taking the New Swing Tree Table for a Spin

Já que você conhece JTable e TableModel não sei se isso vai adiantar mas…

private Object[][] dados;

public void setValueAt(Object valor, int linha, int coluna) {
dados[linha][coluna] = valor;
}

Quanto a questão de performance nunca trabalhei com um numero muito grande de linhas e colunas mas com o que trabalhei não parece um timer que deve ser considerado.

Abraço.

Você poderia criar um TableModel que, via Annotations, já deixasse seu JTable com a formatação, título e tamanho dos campos correta. Acho que é mais útil que bolar um jeito de transformar um JTable num jogo de batalha naval. Esse TableModel conteria um List de objetos que você quer mostrar, e a classe dos objetos visualizados teria as anotações, mais ou menos assim:

class DepositoRow {
    @XColumn(title="Excluir?", editable=true, width=48)
    public boolean excluir;
    @XColumn(title="Comp", format = "000", width=40)
    public int comp;
    @XColumn(title="Banco", format = "000", width=47)
    public int banco;
    @XColumn(title="Agência", format = "0000", width=52)
    public int agencia;
    @XColumn(title="Conta", format = "00000", width=54)
    public int conta;
    @XColumn(title="DV", format = "0", width=34)
    public int dv;
    @XColumn(title="Cheque", format = "00000", width=55)
    public int cheque;
    @XColumn(title="Tipo", width=36)
    public String tipo;
    @XColumn(title="Valor", width=115)
    public double valor;
    @XColumn(title="Situação", width=55)
    public String situacao;
    
    public DepositoRow(int pComp, int pBanco, int pAgencia, int pConta, int pDv,
            int pCheque, String pTipo, double pValor, String pSituacao) {
        comp = pComp;
        banco = pBanco;
        agencia = pAgencia;
        conta = pConta;
        dv = pDv;
        cheque = pCheque;
        tipo = pTipo;
        valor = pValor;
        situacao = pSituacao;
    }
}

(Aqui XColumn seria uma anotação que você criaria para ser interpretada por sua classe derivada de JTable que suportasse uma classe derivada de AbstractTableModel e que contivesse uma List de objetos, como instâncias de DepositoRow por exemplo.

E eu realmente não recomendo usar o DefaultTableModel e o tal de Object[][] em um JTable. Acho que é meio desajeitado.

Obrigado pela recomendação vou dar uma olhada via annotations como você sugeriu.

Flw.