Cordiais saudações, povo do GUJ.
Estou trabalhando no meu programa/aplicativo de cadastros e estoques. A maior parte das janelas são construídas em JPanel, tendo apenas a abertura do programa um método main. Agora comecei a utilizar o recurso do NetBeans que gera telas Swing e criei um novo JFrame, uma tela que eu quero que faça parte do programa e seja chamada por um botão do cadastro de produtos. Pergunto: qual a forma como devo chamar esta nova tela de cadastro dentro do cadastro de produtos, porque ela tem um método public static void main()?
Veja que agora meu aplicativo/programa tem mais de um método main(), isto é possivel? Qual as linhas de código que devem existir no cadastro de produto para chamar esta nova rotina de cadastro de fornecedores para um produto específico?
O evento que chama o novo cadastro (dentro do cadastro de produtos) é o acionamento de um botão, que está definido conforme código abaixo:
btCadForProduto.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// corpo do chamado ao cadastro de fornecedores do ítem.
}
});
Onde está: “// corpo do chamado ao cadastro de fornecedores do item”, deve constar o código para chamar o programa abaixo:
package view;
import controller.ControllerCadForProduto;
import empresaiv.Util;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import model.Fornecedores;
import model.ModelCadForProduto;
/**
*
* @author Ronaldo R. Godoi
*/
public class GuiCadForProduto extends javax.swing.JFrame {
ControllerCadForProduto cCFProduto = new ControllerCadForProduto();
ModelCadForProduto mCFProduto = new ModelCadForProduto();
ArrayList<Fornecedores> listaModelFornecedor = new ArrayList<>();
Util util = new Util();
/**
* Creates new form GuiCadForProduto
*/
public GuiCadForProduto() {
initComponents();
setLocationRelativeTo(null);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jScrollPane2 = new javax.swing.JScrollPane();
jTable2 = new javax.swing.JTable();
lbTitulo_cad_for_produto = new javax.swing.JLabel();
lbId = new javax.swing.JLabel();
lbId_produto = new javax.swing.JLabel();
lbId_fornecedor = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
lbData_compra = new javax.swing.JLabel();
lbData_cadastro = new javax.swing.JLabel();
tfId = new javax.swing.JTextField();
tfId_produto = new javax.swing.JTextField();
tfId_fornecedor = new javax.swing.JTextField();
tfPreco = new javax.swing.JTextField();
tfData_compra = new javax.swing.JTextField();
tfData_cadastro = new javax.swing.JTextField();
btNovo = new javax.swing.JButton();
btLocalizar = new javax.swing.JButton();
btAlterar = new javax.swing.JButton();
btGravar = new javax.swing.JButton();
btExcluir = new javax.swing.JButton();
btCancelar = new javax.swing.JButton();
btFechar = new javax.swing.JButton();
lbDescricao_produto = new javax.swing.JLabel();
lbNome_razao_fornecedor = new javax.swing.JLabel();
jScrollPane3 = new javax.swing.JScrollPane();
jTable3 = new javax.swing.JTable();
jLabel1 = new javax.swing.JLabel();
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
jTable2.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane2.setViewportView(jTable2);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
lbTitulo_cad_for_produto.setText("Cadastro de Fornecedores deste Produto");
lbId.setText("Codigo de Cadastro: ");
lbId_produto.setText("Código de Produto: ");
lbId_fornecedor.setText("Código de Fornecedor: ");
jLabel5.setText("Preço Praticado: ");
lbData_compra.setText("Data da Compra: ");
lbData_cadastro.setText("Data de Cadastro: ");
tfId.setText("jTextField1");
tfId_produto.setText("jTextField2");
tfId_fornecedor.setText("jTextField3");
tfPreco.setText("jTextField4");
tfData_compra.setText("jTextField5");
tfData_cadastro.setText("jTextField6");
btNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/novo.gif"))); // NOI18N
btNovo.setText("Novo");
btNovo.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btNovoActionPerformed(evt);
}
});
btLocalizar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/localizar.png"))); // NOI18N
btLocalizar.setText("Localizar");
btAlterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/alterar.gif"))); // NOI18N
btAlterar.setText("Alterar");
btAlterar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btAlterarActionPerformed(evt);
}
});
btGravar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/gravar.gif"))); // NOI18N
btGravar.setText("Gravar");
btGravar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btGravarActionPerformed(evt);
}
});
btExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/excluir.gif"))); // NOI18N
btExcluir.setText("Excluir");
btCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/cancelar.gif"))); // NOI18N
btCancelar.setText("Cancelar");
btFechar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/sair.png"))); // NOI18N
btFechar.setText("Sair");
btFechar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btFecharActionPerformed(evt);
}
});
lbDescricao_produto.setText("Produto: ");
lbNome_razao_fornecedor.setText("Fornecedor: ");
jTable3.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Codigo Fornecedor", "Nome ou Razão", "Telefone", "Cidade", "Estado"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane3.setViewportView(jTable3);
jLabel1.setText("Tabela de Fornecedores deste Produto:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(btNovo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btLocalizar)
.addGap(9, 9, 9)
.addComponent(btGravar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btAlterar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btExcluir)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btCancelar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btFechar, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel5)
.addComponent(tfPreco, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(169, 169, 169)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbData_compra)
.addComponent(tfData_compra, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(65, 65, 65)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbData_cadastro)
.addComponent(tfData_cadastro, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(lbId_produto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(tfId_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(lbDescricao_produto))
.addGap(188, 188, 188)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lbNome_razao_fornecedor)
.addComponent(lbId_fornecedor)
.addComponent(tfId_fornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(tfId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbId)
.addComponent(lbTitulo_cad_for_produto)))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 663, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(0, 17, Short.MAX_VALUE)))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(38, 38, 38)
.addComponent(lbTitulo_cad_for_produto, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(lbId)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tfId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbId_produto)
.addComponent(lbId_fornecedor))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfId_produto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfId_fornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbDescricao_produto)
.addComponent(lbNome_razao_fornecedor))
.addGap(40, 40, 40)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(lbData_compra)
.addComponent(lbData_cadastro))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfPreco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfData_compra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tfData_cadastro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btNovo)
.addComponent(btLocalizar)
.addComponent(btAlterar)
.addComponent(btExcluir)
.addComponent(btCancelar)
.addComponent(btFechar)
.addComponent(btGravar))
.addContainerGap(42, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btFecharActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {
mCFProduto.setId_produto(this.tfId_produto.getText());
mCFProduto.setId_fornecedor(this.tfId_fornecedor.getText());
mCFProduto.setPreco(util.spaceToDouble(this.tfPreco.getText()));
mCFProduto.setData_compra(this.tfData_compra.getText());
mCFProduto.setData_cadastro(this.tfData_cadastro.getText());
if(cCFProduto.salvarCadForProdutoController(mCFProduto) > 0) {
JOptionPane.showMessageDialog(this, "Registro salvo com sucesso!", "Atenção", JOptionPane.WARNING_MESSAGE);
//carregar os fornecedores na tabela.
} else {
JOptionPane.showMessageDialog(this, "Erro ao salvar fornecedor!", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
// private void listaFornecedor() {
// listaModelFornecedor = cCFProduto.getListaCadForProdutoController();
// }
private void btAlterarActionPerformed(java.awt.event.ActionEvent evt) {
mCFProduto.setId_produto(this.tfId_produto.getText());
mCFProduto.setId_fornecedor(this.tfId_fornecedor.getText());
mCFProduto.setPreco(util.spaceToDouble(this.tfPreco.getText()));
mCFProduto.setData_compra(this.tfData_compra.getText());
mCFProduto.setData_cadastro(this.tfData_cadastro.getText());
if(cCFProduto.atualizarCadForProdutoController(mCFProduto) > 0) {
JOptionPane.showMessageDialog(this, "Registro salvo com sucesso!");
//carregar os fornecedores na tabela.
} else {
JOptionPane.showMessageDialog(this, "Erro ao salvar fornecedor!", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(GuiCadForProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(GuiCadForProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(GuiCadForProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(GuiCadForProduto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GuiCadForProduto().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btAlterar;
private javax.swing.JButton btCancelar;
private javax.swing.JButton btExcluir;
private javax.swing.JButton btFechar;
private javax.swing.JButton btGravar;
private javax.swing.JButton btLocalizar;
private javax.swing.JButton btNovo;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel5;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JTable jTable1;
private javax.swing.JTable jTable2;
private javax.swing.JTable jTable3;
private javax.swing.JLabel lbData_cadastro;
private javax.swing.JLabel lbData_compra;
private javax.swing.JLabel lbDescricao_produto;
private javax.swing.JLabel lbId;
private javax.swing.JLabel lbId_fornecedor;
private javax.swing.JLabel lbId_produto;
private javax.swing.JLabel lbNome_razao_fornecedor;
private javax.swing.JLabel lbTitulo_cad_for_produto;
private javax.swing.JTextField tfData_cadastro;
private javax.swing.JTextField tfData_compra;
private javax.swing.JTextField tfId;
private javax.swing.JTextField tfId_fornecedor;
private javax.swing.JTextField tfId_produto;
private javax.swing.JTextField tfPreco;
// End of variables declaration
}
/*
Table: fornec_produto
Columns:
id int AI PK
id_produto varchar(10)
id_fornecedor varchar(16)
preco double
data_compra datetime
data_cadastro datetime
*/
Este programa ainda não está pronto, mas já quero fazer uma chamada para ele, para ir testando.
Atenciosamente,
Ronaldo