1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

JTable Quando selecionar uma linha colocar a imagem na column 0

Quando selecionar uma linha colocar a imagem na column 0.

public class Cliente implements Serializable {

    private JLabel img;

    private long id;
    private String razaoSocial;
    private String endereco;

    public JLabel getImg() {
        return img;
    }

    public void setImg(JLabel img) {
        this.img = img;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getRazaoSocial() {
        return razaoSocial;
    }

    public void setRazaoSocial(String razaoSocial) {
        this.razaoSocial = razaoSocial;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 29 * hash + (int) (this.id ^ (this.id >>> 32));
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Cliente other = (Cliente) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }   
}
package com.intersys.table_modal;

import com.intersys.modal.Cliente;
import java.awt.Image;
import java.util.List;
import javax.swing.JLabel;
import javax.swing.table.AbstractTableModel;

public class ClienteTableModel extends AbstractTableModel {

    private List<Cliente> dados;
    private String[] colunas = {"", "Código", "Razão Social", "Endereço"};

    public ClienteTableModel(List<Cliente> dados) {
        this.dados = dados;
    }

    public void addRow(Cliente cliente) {
        this.dados.add(cliente);
        this.fireTableDataChanged();
    }

    public String getColumnName(int num) {
        return this.colunas[num];
    }

    @Override
    public int getRowCount() {
        return dados.size();
    }

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

    @Override
    public Class<?> getColumnClass(int columnIndex) {

        switch (columnIndex) {
            case 0:
                return Image.class;
            case 1:
                return Long.class;
            case 2:
                return String.class;
            case 3:
                return String.class;
            default:
                throw new IndexOutOfBoundsException("ColumnIndex out of bounds");
        }
    }

    @Override
    public Object getValueAt(int linha, int coluna) {
        switch (coluna) {
            case 1:
                return dados.get(linha).getId();
            case 2:
                return dados.get(linha).getRazaoSocial();
            case 3:
                return dados.get(linha).getEndereco();
        }
        return null;
    }

    public boolean isCellEditable(int linha, int coluna) {
        return false;
    }

    public void removeRow(int linha) {
        this.dados.remove(linha);
        this.fireTableRowsDeleted(linha, linha);
    }

    public Cliente get(int linha) {
        return this.dados.get(linha);
    }

    @Override
    public void setValueAt(Object valor, int linha, int coluna) {
        if (valor == null) {
            return;
        }

        switch (coluna) {
            case 0:
                if (valor instanceof JLabel) {
                    JLabel d = (JLabel) valor;
                    dados.get(linha).setImg(d);
                } else {
                    dados.get(linha).setImg(null);
                }
                break;
            case 1:
                dados.get(linha).setId((long) valor);
                break;
            case 2:
                dados.get(linha).setRazaoSocial((String) valor);
                break;
            case 3:
                dados.get(linha).setEndereco((String) valor);
                break;
        }
        this.fireTableRowsUpdated(linha, linha);
    }

    public void addClientes(Cliente cliente) {
        dados.add(cliente);
        int ultimoIndice = getRowCount() - 1;
        fireTableRowsInserted(ultimoIndice, ultimoIndice);
    }

    public void addListaCidades(List<Cliente> cidades) {
        int tamanhoAntigo = getRowCount();
        dados.addAll(cidades);
        fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);
    }

    public void limpar() {
        dados.clear();
        fireTableDataChanged();
    }

    public boolean isEmpty() {
        return dados.isEmpty();
    }
}
 clientes = this.ClienteDAOfindByAll();
        modal = new ClienteTableModel(clientes);

        tb_clientes.setModel(modal);

        tb_clientes.getColumnModel().getColumn(0).setPreferredWidth(25);
        tb_clientes.getColumnModel().getColumn(1).setPreferredWidth(80);
        tb_clientes.getColumnModel().getColumn(2).setPreferredWidth(250);
        tb_clientes.getColumnModel().getColumn(3).setPreferredWidth(250);

        tb_clientes.getColumnModel().getColumn(0).setCellRenderer(NegocioUtil.columnLado("LEFT"));
        tb_clientes.getColumnModel().getColumn(1).setCellRenderer(NegocioUtil.columnLado("RIGHT"));
        tb_clientes.getColumnModel().getColumn(2).setCellRenderer(NegocioUtil.columnLado("LEFT"));
        tb_clientes.getColumnModel().getColumn(3).setCellRenderer(NegocioUtil.columnLado("LEFT"));

        tb_clientes.requestFocus();
        tb_clientes.setRowSelectionInterval(0, 0);

        JLabel lb = new JLabel(new ImageIcon(getClass().getResource("/com/intersys/images/seta.png")));
        modal.setValueAt(lb, 0, 0);
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java netbeans ou faça a sua própria pergunta.