Boa noite a todos, sou novo no forúm, gostaria de auxílio para atualizar uma jtable em um projeto, lembrando que essa jtable foi gerada automaticamente pelo netbeans.
Classe da jTable:
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package sistema_vendas_gestao_luvin;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
*
* @author Luis Vinhali
*/
@Entity
@Table(name = "temporariaprodutosadd", catalog = "lanchonete", schema = "")
@NamedQueries({
@NamedQuery(name = "Temporariaprodutosadd.findAll", query = "SELECT t FROM Temporariaprodutosadd t"),
@NamedQuery(name = "Temporariaprodutosadd.findByCodProdutoAdd", query = "SELECT t FROM Temporariaprodutosadd t WHERE t.codProdutoAdd = :codProdutoAdd"),
@NamedQuery(name = "Temporariaprodutosadd.findByQntdProdutoAdd", query = "SELECT t FROM Temporariaprodutosadd t WHERE t.qntdProdutoAdd = :qntdProdutoAdd"),
@NamedQuery(name = "Temporariaprodutosadd.findByValorProdutoAdd", query = "SELECT t FROM Temporariaprodutosadd t WHERE t.valorProdutoAdd = :valorProdutoAdd")})
public class Temporariaprodutosadd implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "codProdutoAdd")
private Integer codProdutoAdd;
@Column(name = "qntdProdutoAdd")
private Integer qntdProdutoAdd;
// @Max(value=?) @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
@Column(name = "valorProdutoAdd")
private Float valorProdutoAdd;
public Temporariaprodutosadd() {
}
public Temporariaprodutosadd(Integer codProdutoAdd) {
this.codProdutoAdd = codProdutoAdd;
}
public Integer getCodProdutoAdd() {
return codProdutoAdd;
}
public void setCodProdutoAdd(Integer codProdutoAdd) {
Integer oldCodProdutoAdd = this.codProdutoAdd;
this.codProdutoAdd = codProdutoAdd;
changeSupport.firePropertyChange("codProdutoAdd", oldCodProdutoAdd, codProdutoAdd);
}
public Integer getQntdProdutoAdd() {
return qntdProdutoAdd;
}
public void setQntdProdutoAdd(Integer qntdProdutoAdd) {
Integer oldQntdProdutoAdd = this.qntdProdutoAdd;
this.qntdProdutoAdd = qntdProdutoAdd;
changeSupport.firePropertyChange("qntdProdutoAdd", oldQntdProdutoAdd, qntdProdutoAdd);
}
public Float getValorProdutoAdd() {
return valorProdutoAdd;
}
public void setValorProdutoAdd(Float valorProdutoAdd) {
Float oldValorProdutoAdd = this.valorProdutoAdd;
this.valorProdutoAdd = valorProdutoAdd;
changeSupport.firePropertyChange("valorProdutoAdd", oldValorProdutoAdd, valorProdutoAdd);
}
@Override
public int hashCode() {
int hash = 0;
hash += (codProdutoAdd != null ? codProdutoAdd.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Temporariaprodutosadd)) {
return false;
}
Temporariaprodutosadd other = (Temporariaprodutosadd) object;
if ((this.codProdutoAdd == null && other.codProdutoAdd != null) || (this.codProdutoAdd != null && !this.codProdutoAdd.equals(other.codProdutoAdd))) {
return false;
}
return true;
}
@Override
public String toString() {
return "sistema_vendas_gestao_luvin.Temporariaprodutosadd[ codProdutoAdd=" + codProdutoAdd + " ]";
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
changeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
changeSupport.removePropertyChangeListener(listener);
}
}
Gostaria de atualizar essa table ao ciclar no botão adicionar produtos em minha classe vendas, segue o código do botão:
Classe Vendas - jButton:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
int qtde = 50;
int contador_Produto = -1; //Pra saber se o vetor deve continuar igual
contador_Produto++; //aumenta o contador
int contador_Valor = -1; //Pra saber se o vetor deve continuar igual
contador_Valor++; //aumenta o contador
int contador_Qntd = -1; //Pra saber se o vetor deve continuar igual
contador_Qntd++; //aumenta o contador
Integer[] dadosCod = new Integer[qtde + 1]; //Cria o vetor 'dadosCod' com 50 vetores
Float[] dadosValor = new Float[qtde + 1]; //Cria o vetor 'dadosValor' com 50 vetores
Integer[] dadosQntd = new Integer[qtde + 1]; //Cria o vetor 'dadosQntd' com 50 vetores
dadosCod[contador_Produto] = Integer.parseInt(textProduto.getText()); //Converte o valor(String) do textfield para double
dadosValor[contador_Valor] = Float.parseFloat(textValor.getText()); //Converte o valor(String) do textfield para double
dadosQntd[contador_Qntd] = Integer.parseInt(textQuantidade.getText()); //Converte o valor(String) do textfield para double
getset gs = new getset();
gs.setCodigoProdutoAdd(textProduto.getText());
gs.setQuantidadeProdutoAdd(textQuantidade.getText());
gs.setValorDoProdutoAdd(textValor.getText());
bancoDAO dao = new bancoDAO();
if (textValor.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "O campo Quantidade é obrigatório!");
textValor.grabFocus();
} else if (textQuantidade.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "O campo Valor é obrigatório!");
textQuantidade.grabFocus();
} else {
dao.adicionaTemporario(gs);
JOptionPane.showMessageDialog(null, "Produto Adicionado");
textProduto.grabFocus();
textProduto.setText(""); //limpa
textValor.setText(""); //limpa
textQuantidade.setText(""); //limpa
atualizaTable();
}
}
` Método que atualiza a table, inserido dentro da classe vendas:
private void atualizaTable() {
jTableAdicionados = new javax.swing.JTable();
jTableAdicionados.getTableHeader().setReorderingAllowed(false);
org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, temporariaprodutosaddList, jTableAdicionados);
org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${codProdutoAdd}"));
columnBinding.setColumnName("Cód. do Produto");
columnBinding.setColumnClass(Integer.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${qntdProdutoAdd}"));
columnBinding.setColumnName("Quantidade");
columnBinding.setColumnClass(Integer.class);
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${valorProdutoAdd}"));
columnBinding.setColumnName("Valor Produto Add");
columnBinding.setColumnClass(Float.class);
bindingGroup.addBinding(jTableBinding);
jTableBinding.bind();
jTableAdicionados.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTableAdicionadosMouseClicked(evt);
}
});
jScrollPane3.setViewportView(jTableAdicionados);
if (jTableAdicionados.getColumnModel().getColumnCount() > 0) {
jTableAdicionados.getColumnModel().getColumn(0).setResizable(false);
jTableAdicionados.getColumnModel().getColumn(1).setResizable(false);
jTableAdicionados.getColumnModel().getColumn(2).setResizable(false);
}
}
Como posso atualizar essa table de uma forma simples e inteligente, acredito que o maior problema esteja sendo a jtable ter sido gerada pelo netbeans, o codigo compila, não apresenta erros, porém quando adiciono o produto, não atualiza a jtable que mostra os produtos adicionados. Se puderem me ajudar, Grato!
OBS: Os códigos do botão estão funcionais, único problema é fazer com que após a execução de todo código contido dentro dele, seja atualizada a table pelo método inserido.
Ilustração ( Quero que isso aconteça automaticamente, não tendo que usar dispose(); para atualizar todo o Frame, somente a jTable ):