[JTable] inserir

0 respostas
ken420

Pessoal tenho um codigo que gera uma tabela(segue abaixo o codigo), mas minha duvida eh a seguinte como implementar essa tabela que eu criei dentro de um JPanel? obrigado

public class TableFrame extends JFrame {

    // As colunas
    private String[] colunas = {"Nome", "Telefone", "CEP"};

    // Os dados
    private String[][] linhas = {
            {"Carolina Dickman", "99820125", "96025-100"},
            {"Avril Lavigne", "88140256", "70071-000"},
            {"Ana Hickman", "77845581", "90050-000"},
            {"Franciele Amorim", "77841544", "89100-000"}
    };

    // A tabela para o teste
    private JTable table;

    public TableFrame() {
        setLayout(new BorderLayout());

        table = new JTable(linhas, colunas);

        // Cria um renderizador para a coluna Telefone e adiciona o tooltip
        // para cada linha de dados.
        CellRendererToolTip renderer = new CellRendererToolTip();
        renderer.addToolTip(0, "Telefone do Vitor");
        renderer.addToolTip(1, "Telefone do Paulo");
        renderer.addToolTip(2, "Telefone da Ana");
        renderer.addToolTip(3, "Telefone da Franciele");

        // Seta o renderer só para aquela coluna.
        // As outras continuam acessando o default.
        table.getColumn("Telefone").setCellRenderer(renderer);

        add(table, BorderLayout.CENTER);
    }

    class CellRendererToolTip extends DefaultTableCellRenderer {
    // Mantém todos os tooltips com suas linhas.
    private Map<Long, String> tooltip = new HashMap<Long, String>();

    // Mantém a linha atual que este objeto está renderizando.
    private int row;

    // Busca qual é a linha atual.
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {
        Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

        this.row = row;

        return c;
    }

    // Retorna o tooltip baseado no map.
    public String getToolTipText() {
        return tooltip.get(new Long(row));
    }

    // Adiciona um tooltip pela linha.
    public void addToolTip(int row, String text) {
        tooltip.put(new Long(row), text);
    }
  }
}
Criado 31 de janeiro de 2009
Respostas 0
Participantes 1