Outro problema:
Criei todas as classes do site que me enviou, porém tive alguns erros. Obrigado por me ajudar. Quem sabe agora vai…
Na classe ProdutoTableModel:

https://www.dropbox.com/s/gc8n73ita24xhll/produtotablemodel.png
Na classe Principal:

https://www.dropbox.com/s/410tw14lkm9vrym/principal.png
Seguem os códigos:
[code]import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class ProdutoTableModel extends AbstractTableModel {
private final int COL_NOME = 0;
private final int COL_QUANT = 1;
private List<Produto> produtos;
public ProdutoTableModel() {
produtos = new ArrayList();
}
public ProdutoTableModel(List<Produto> lista) {
this();
produtos.addAll(lista);
}
@Override
public String getColumnName(int column) {
//qual o nome da coluna
if (column == COL_NOME) {
return "Nome";
} else if (column == COL_QUANT) {
return "Quant. Disp";
}
return "";
}
@Override
public Class getColumnClass(int columnIndex) {
//retorna a classe que representa a coluna
if (columnIndex == COL_NOME) {
return String.class;
} else if (columnIndex == COL_QUANT) {
return Integer.class;
}
return String.class;
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 2;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return produtos.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
//pega o produto da linha
Produto p = produtos.get(rowIndex);
//verifica qual valor deve ser retornado
if (columnIndex == COL_NOME) {
return p.getNome();
} else if (columnIndex == COL_QUANT) {
return p.getQuant();
}
return "";
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//pega o produto da linha
Produto p = produtos.get(rowIndex);
//verifica qual valor vai ser alterado
if (columnIndex == COL_NOME) {
p.setNome(aValue.toString());
} else if (columnIndex == COL_QUANT) {
p.setQuant(Integer.parseInt(aValue.toString()));
}
//avisa que os dados mudaram
fireTableDataChanged();
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
//no nosso caso todas vão ser editáveis, entao retorna true pra todas
return true;
}
public void inserir(Produto p) {
produtos.add(p);
fireTableDataChanged();
}
public void excluir(int pos) {
produtos.remove(pos);
fireTableDataChanged();
}
public void excluir(Produto p) {
produtos.remove(p);
fireTableDataChanged();
}
public void ordenarPorNome() {
//ordena pelo nome
Collections.sort(produtos, new Comparator<produto>() {
public int compare(Produto o1, Produto o2) {
return o1.getNome().compareTo(o2.getNome());
}
});
//avisa que a tabela foi alterada
fireTableDataChanged();
}
public void ordenarPorQuantidade() {
//ordena pelo nome
Collections.sort(produtos, new Comparator<produto>() {
public int compare(Produto o1, Produto o2) {
return o1.getQuant() - o2.getQuant();
}
});
//avisa que a tabela foi alterada
fireTableDataChanged();
}
public void misturar() {
//mistura a lista
Collections.shuffle(produtos);
//avisa que a tabela foi alterada
fireTableDataChanged();
}
public Produto getProduto(int pos) {
if (pos < 0 || pos >= produtos.size()) {
return null;
}
return produtos.get(pos);
}
}
[/code]
[code]import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Principal extends JFrame {
private ProdutoTableModel model;
//variável só para controlar os códigos dos produtos
private int ultimoCod;
public Principal() {
Tabela frame = new Tabela();
// initComponents();
ultimoCod = 1;
//cria a lista com os produtos
List<Produto> lista = new ArrayList<Produto>();
lista.add(new Produto(ultimoCod++,"Lapiseira 0.7",30));
lista.add(new Produto(ultimoCod++,"Caneta preta",100));
lista.add(new Produto(ultimoCod++,"Caneta azul",70));
lista.add(new Produto(ultimoCod++,"Caneta vermelha",100));
//cria o modelo de Produto
model = new ProdutoTableModel(lista);
//atribui o modelo à tabela
frame.setModel(model);
}
//Ação do botão Inserir
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Random r = new Random();
Produto p = new Produto(ultimoCod++, "Produto "+String.valueOf(r.nextInt(100)), r.nextInt(1000));
model.inserir(p);
}
//Ação do botão Excluir
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
int selecionados[] = frame.getSelectedRows();
if (selecionados.length > 0){
List<Produto> seraoExcluidos = new ArrayList<Produto>();
for (int i=0; i<selecionados.length; i++)
seraoExcluidos.add(model.getCliente(selecionados[i]));
for (Produto p : seraoExcluidos)
model.excluir(p);
}else{
JOptionPane.showMessageDialog(this, "Selecione alguém neh...");
}
}
//Ação do botão Ordenar por Quantidade
private void btnNewButton_3ActionPerformed(java.awt.event.ActionEvent evt) {
model.ordenarPorQuantidade();
}
//Ação do botão Ordenar por Nome
private void btnNewButton_4ActionPerformed(java.awt.event.ActionEvent evt) {
model.ordenarPorNome();
}
private void btnNewButton_2ActionPerformed(java.awt.event.ActionEvent evt) {
model.misturar();
//...
}
}[/code]