Implementaçao da tela de Ajuste de Estoque (TableModel)

0 respostas
adsadilson

Boa tarde caro colegas será q alguem pode me da uma força na implementação de uma TableModel para a tela de ajuste de estoque ja estou jogados os dados na jtable e fazendo os calculos, só q gostaria de modificar algumas coisa, tipo ao lista o itens na jtable a coluna diferença e total esta trazendo os valores só queria q ele esse valores aparecia apos a digitação da coluna ajuste, e apos precionar o enter o foco ir para a proxima linha de preferencia na mesma coluna. abaixo ou deixar o codigo de table model e o link da imagem da minha tela.

[url]http://img716.imageshack.us/img716/7388/ajustedeestoque.gif [/url]

public class TableModelAjusteEstoque extends AbstractTableModel {   
  
    private static final DecimalFormat dF = new DecimalFormat("#,##0.00");   
    private List<Produto> linhas;   
    Produto prod;   
    private String[] colunas = new String[]{   
        "Código", "Descrição", "Custo Médio", "Quantidade", "Ajuste", "Diferença", "Total"};   
  
    public TableModelAjusteEstoque() {   
        linhas = new ArrayList<>();   
    }   
  
    public TableModelAjusteEstoque(List<Produto> listaDeProdutos) {   
        linhas = new ArrayList<>(listaDeProdutos);   
    }   
  
    @Override   
    public int getColumnCount() {   
        return colunas.length;   
    }   
  
    @Override   
    public int getRowCount() {   
        return linhas.size();   
    }   
  
    @Override   
    public String getColumnName(int columnIndex) {   
        return colunas[columnIndex];   
    }   
  
    @Override   
    public Class<?> getColumnClass(int columnIndex) {   
        switch (columnIndex) {   
            case 0:   
                return int.class;   
            case 1:   
                return String.class;   
            case 2:   
                return double.class;   
            case 3:   
                return double.class;   
            case 4:   
                return String.class;   
            case 5:   
                return double.class;   
            case 6:   
                return double.class;   
            default:   
                throw new IndexOutOfBoundsException("columnIndex out of bounds");   
        }   
    }   
  
    @Override   
    public Object getValueAt(int rowIndex, int columnIndex) {   
        prod = linhas.get(rowIndex);   
        switch (columnIndex) {   
            case 0:   
                return prod.getId();   
            case 1:   
                return prod.getNome();   
            case 2:   
                return dF.format(prod.getVlr_cmv());   
            case 3:   
                return dF.format(prod.getQuantidade());   
            case 4:   
                return prod.getEst_atual();   
            case 5:   
                try {   
                    return dF.format(prod.getEst_atual()-Ulti.formatarValor(prod.getQtde()) );   
                } catch (ParseException ex) {   
                    Logger.getLogger(TableModelAjusteEstoque.class.getName()).log(Level.SEVERE, null, ex);   
                }   
            case 6:   
                try {   
                    return dF.format(( prod.getEst_atual()-Ulti.formatarValor(prod.getQtde())) * prod.getVlr_cmv());   
                } catch (ParseException ex) {   
                    Logger.getLogger(TableModelAjusteEstoque.class.getName()).log(Level.SEVERE, null, ex);   
                }   
            default:   
                throw new IndexOutOfBoundsException("columnIndex out of bounds");   
        }   
    }   
  
    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {   
        Produto prod = linhas.get(rowIndex);   
  
        System.out.println("columnIndex: " + columnIndex);   
  
        switch (columnIndex) {   
            case 0:   
                if (aValue.getClass() == int.class) {   
                    prod.setId(Integer.parseInt(aValue.toString()));   
                }   
                break;   
            case 1:   
                if (aValue.getClass() == String.class) {   
                    prod.setNome(aValue.toString());   
                }   
                break;   
            case 2:   
                if (aValue.getClass() == Double.class) {   
                    prod.setVlr_custo(Double.parseDouble(aValue.toString()));   
                }   
                break;   
            case 4:   
                try {   
                    prod.setEst_atual(Integer.parseInt(aValue.toString()));   
                } catch (Exception e) {   
                }   
                break;   
            case 3:   
                if (aValue.getClass() == Double.class) {   
                    prod.setQuant_inv(Double.parseDouble(aValue.toString()));   
                }   
                break;   
            default:   
                throw new IndexOutOfBoundsException("columnIndex out of bounds");   
        }   
    }   
  
    @Override   
    public boolean isCellEditable(int rowIndex, int columnIndex) {   
        switch (columnIndex) {   
            case 4:   
                return true;   
            default:   
                return false;   
        }   
    }   
  
    public Produto getProduto(int indiceLinha) {   
        return linhas.get(indiceLinha);   
    }   
  
    public void addProduto(Produto prod) {   
        linhas.add(prod);   
        int ultimoIndice = getRowCount() - 1;   
    }   
  
    public void removeProduto(int indiceLinha) {   
        linhas.remove(indiceLinha);   
        fireTableRowsDeleted(indiceLinha, indiceLinha);   
    }   
  
    public void addListaDeProduto(List<Produto> prod) {   
        int tamanhoAntigo = getRowCount();   
        linhas.addAll(prod);   
        fireTableRowsInserted(tamanhoAntigo, getRowCount() - 1);   
    }   
  
    public void limpar() {   
        linhas.clear();   
        fireTableDataChanged();   
    }   
  
    public boolean isEmpty() {   
        return linhas.isEmpty();   
    }   
  
    public double getTotalGeral() {   
        double total = 0;   
        for (Produto p : linhas) {   
            total += p.getVlr_cmv() * p.getEst_atual();   
        }   
        return total;   
    }   
  
    public List<Produto> getLinhas() {   
        return linhas;   
    }
Criado 22 de abril de 2013
Respostas 0
Participantes 1