Sim, mas estou com um problema…
Tentei fazer desta forma, mas a janela, é uma variável que deverá ser vista por todo os passos(Cadastro e Listagem), Como consigo fazer isso?
O tabbedPane é único para todos os métodos
public MainFrame() {
super();
initGUI();
cadastro();
listagem();
}// Fim do Public MainFrame
private void initGUI() {
setTitle("Cliente");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 727, 377);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
contentPane.add(tabbedPane, BorderLayout.CENTER);
tabbedPane.addTab("Cadastro", null, panelCadastro, null); // aqui está dando erro
tabbedPane.addTab("Listagem", null, panelListagem, null); // aqui está dando erro
tabbedPane.setEnabledAt(1, true);
}
// cadastro
private void cadastro() {
JPanel panelCadastro = new JPanel();
JLabel lblNome = new JLabel("Nome: ");
JLabel lblCpf = new JLabel("Cpf:");
JLabel lblEndereo = new JLabel("Endere\u00E7o:");
JLabel lblSexo = new JLabel("Sexo:");
JLabel lblDtNasc = new JLabel("Dt. Nasc:");
txtEndereco = new JTextField();
txtEndereco.setColumns(10);
txtNome = new JTextField();
txtNome.setColumns(10);
txtCpf = new JTextField();
txtCpf.setColumns(10);
txtDtNasc = new JTextField();
txtDtNasc.setColumns(10);
JRadioButton rdbtnMasculino = new JRadioButton("Masculino");
rdbtnMasculino.setSelected(true);
buttonGroup.add(rdbtnMasculino);
JRadioButton rdbtnFeminino = new JRadioButton("Feminino");
rdbtnFeminino.setSelected(true);
buttonGroup.add(rdbtnFeminino);
JButton btnCadastrar = new JButton("Cadastrar");
btnCadastrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
PessoaDTO pessoaDTO = new PessoaDTO();
PessoaBO pessoaBO = new PessoaBO();
String nome = txtNome.getText();
String cpf = txtCpf.getText();
String endereco = txtEndereco.getText();
String nasc = txtDtNasc.getText();
pessoaBO.validaNome(nome);
pessoaBO.validaCpf(cpf);
pessoaBO.validaEndereco(endereco);
pessoaBO.validaDtNasc(nasc);
pessoaDTO.setNome(nome);
pessoaDTO.setCpf(Long.parseLong(cpf));
pessoaDTO.setEndereco(endereco);
try {
pessoaDTO.setDtNasc(dateFormat.parse(nasc));
} catch (ParseException e1) {
e1.printStackTrace();
}
char sexo = rdbtnMasculino.isSelected() ? 'M' : 'F';
pessoaDTO.setSexo(sexo);
pessoaBO.cadastrar(pessoaDTO);
MensagensUtil.addMsg(MainFrame.this, "Cadastro Efetuado com sucesso");
MainFrame.this.dispose();
main(null);
} catch (Exception e1) {
e1.printStackTrace();
MensagensUtil.addMsg(MainFrame.this, e1.getMessage());
}
}
});
JButton btnLimpar = new JButton("Limpar");
btnLimpar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
txtNome.setText("");
txtEndereco.setText("");
txtCpf.setText("");
txtDtNasc.setText("");
rdbtnMasculino.setSelected(true);
}
});
GroupLayout gl_panelCadastro = new GroupLayout(panelCadastro);
gl_panelCadastro.setHorizontalGroup(gl_panelCadastro.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panelCadastro.createSequentialGroup().addContainerGap().addGroup(gl_panelCadastro
.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panelCadastro.createSequentialGroup()
.addComponent(lblNome, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(txtNome, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panelCadastro.createSequentialGroup()
.addComponent(lblCpf, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(txtCpf, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panelCadastro.createSequentialGroup()
.addComponent(lblEndereo, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(txtEndereco, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panelCadastro.createSequentialGroup()
.addComponent(lblSexo, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED).addComponent(rdbtnMasculino).addGap(29)
.addComponent(rdbtnFeminino, GroupLayout.PREFERRED_SIZE, 101,
GroupLayout.PREFERRED_SIZE))
.addGroup(gl_panelCadastro.createSequentialGroup()
.addComponent(lblDtNasc, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(txtDtNasc, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE)))
.addContainerGap(32, Short.MAX_VALUE))
.addGroup(Alignment.TRAILING,
gl_panelCadastro.createSequentialGroup().addContainerGap(195, Short.MAX_VALUE)
.addComponent(btnCadastrar).addGap(18)
.addComponent(btnLimpar, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE)
.addGap(36)));
gl_panelCadastro
.setVerticalGroup(
gl_panelCadastro.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panelCadastro.createSequentialGroup().addGap(23)
.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNome).addComponent(txtNome, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
.addComponent(lblCpf).addComponent(txtCpf, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
.addComponent(lblEndereo).addComponent(txtEndereco,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
.addComponent(lblSexo).addComponent(rdbtnMasculino)
.addComponent(rdbtnFeminino))
.addPreferredGap(ComponentPlacement.UNRELATED)
.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
.addComponent(lblDtNasc)
.addComponent(txtDtNasc, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED, 42, Short.MAX_VALUE)
.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
.addComponent(btnCadastrar).addComponent(btnLimpar))
.addContainerGap()));
panelCadastro.setLayout(gl_panelCadastro);
}
// listagem
private void listagem() {
JPanel panelListagem = new JPanel();
JScrollPane scrollListagem = new JScrollPane();
JButton btnDeletar = new JButton("Deletar Tudo");
btnDeletar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// deletar
PessoaBO pessoaBO = new PessoaBO();
try {
int resp = JOptionPane.showConfirmDialog(MainFrame.this, "Deseja Realmente Deletar TUDO?");
if (resp == 0) {
pessoaBO.removeTudo();
MensagensUtil.addMsg(MainFrame.this, "Pessoas removidas com sucesso!!!");
MainFrame.this.dispose();
main(null);
}
} catch (NegocioException e) {
e.printStackTrace();
MensagensUtil.addMsg(MainFrame.this, e.getMessage());
}
}
});
GroupLayout gl_panelListagem = new GroupLayout(panelListagem);
gl_panelListagem
.setHorizontalGroup(gl_panelListagem.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panelListagem.createSequentialGroup().addContainerGap()
.addGroup(gl_panelListagem.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panelListagem.createSequentialGroup()
.addComponent(scrollListagem, GroupLayout.DEFAULT_SIZE, 676,
Short.MAX_VALUE)
.addContainerGap())
.addGroup(Alignment.TRAILING,
gl_panelListagem.createSequentialGroup().addComponent(btnDeletar,
GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE)
.addGap(30)))));
gl_panelListagem.setVerticalGroup(gl_panelListagem.createParallelGroup(Alignment.LEADING)
.addGroup(gl_panelListagem.createSequentialGroup().addContainerGap()
.addComponent(scrollListagem, GroupLayout.PREFERRED_SIZE, 251, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED).addComponent(btnDeletar)
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
PessoaBO pessoaBO = new PessoaBO();
String[][] lista;
try {
lista = pessoaBO.listagem(idsPessoas);
tableListagem = new JTable();
tableListagem.setModel(new DefaultTableModel(lista,
new String[] { "Id", "Nome", "CPF", "Endere\u00E7o", "Sexo", "Dt. Nasc.", "", "" }) {
private static final long serialVersionUID = -545467246473218452L;
boolean[] columnEditables = new boolean[] { false, false, false, false, false, false, true, true };
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
scrollListagem.setViewportView(tableListagem);
panelListagem.setLayout(gl_panelListagem);
Action actionDelecao = new AbstractAction() {
private static final long serialVersionUID = -421951775656187572L;
@Override
public void actionPerformed(ActionEvent actionEvent) {
int resp = JOptionPane.showConfirmDialog(MainFrame.this, "Deseja realmente deletar essa pessoa?");
if (resp == 0) {
JTable table = (JTable) actionEvent.getSource();
int linha = Integer.parseInt(actionEvent.getActionCommand());
((DefaultTableModel) table.getModel()).removeRow(linha);
try {
pessoaBO.removePessoa(idsPessoas.get(linha));
idsPessoas.remove(linha);
MensagensUtil.addMsg(MainFrame.this, "Removeu com Sucesso");
} catch (NegocioException e) {
e.printStackTrace();
MensagensUtil.addMsg(MainFrame.this, e.getMessage());
}
}
}
};
Action actionEdicao = new AbstractAction() {
private static final long serialVersionUID = 205145605483315477L;
@Override
public void actionPerformed(ActionEvent actionEvent) {
}
};
ButtonColumn buttonColumnDelecao = new ButtonColumn(tableListagem, actionDelecao, 7);
ButtonColumn buttonColumnEdicao = new ButtonColumn(tableListagem, actionEdicao, 6);
buttonColumnDelecao.setMnemonic(KeyEvent.VK_D);
buttonColumnEdicao.setMnemonic(KeyEvent.VK_E);
} catch (NegocioException e1) {
e1.printStackTrace();
MensagensUtil.addMsg(MainFrame.this, e1.getMessage());
}
}