Como resolver esse estouro na memoria gente?
tenho duas GUI’s e tenho q ter em uma a instancia da outra, mas ele sempre ta estourando? 
Como resolver esse estouro na memoria gente?
tenho duas GUI’s e tenho q ter em uma a instancia da outra, mas ele sempre ta estourando? 
Manda o StackTrace…
Exception in thread "main" java.lang.StackOverflowError
at sun.awt.windows.WToolkit.getScreenInsets(Native Method)
at sun.awt.windows.WToolkit.getScreenInsets(WToolkit.java:551)
at java.awt.Window.init(Window.java:395)
at java.awt.Window.<init>(Window.java:433)
at java.awt.Frame.<init>(Frame.java:403)
at java.awt.Frame.<init>(Frame.java:368)
at javax.swing.JFrame.<init>(JFrame.java:158)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:23)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
at Interface.JanelaCadastroDePessoas.<init>(JanelaCadastroDePessoas.java:22)
at Interface.JanelaAdicionarNovo.<init>(JanelaAdicionarNovo.java:19)
// e se vai assim ...
GUI's
JCadPessoas: (sem codigo auto-gerado)
package Interface;
import Classes.CadastroDePessoas;
import Classes.GerenciaTabelas;
import Classes.PlainDocument;
import Classes.SalvaEAbre;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.text.MaskFormatter;
/**
*
* @author P Informática
*/
public class JanelaCadastroDePessoas extends javax.swing.JFrame {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
JanelaAdicionarNovo jAdicionaNovo = new JanelaAdicionarNovo();
GerenciaTabelas gerenciaTabelas = new GerenciaTabelas();
SalvaEAbre salvaEAbre = new SalvaEAbre();
public JanelaCadastroDePessoas(){
initComponents();
this.setBounds(20, 20, 1024, 768);
MaskFormatter mascaraCpf = null;
try {
mascaraCpf = new MaskFormatter("###.###.###-##");
}
catch (ParseException pe) {
pe.printStackTrace();
}
mascaraCpf.setPlaceholderCharacter('_');
mascaraCpf.setValidCharacters("[telefone removido]");
mascaraCpf.install(txtFormatCpf);
MaskFormatter mascaraCnpj = null;
try{
mascaraCnpj = new MaskFormatter("##.###.###/####-##");
}
catch(ParseException pe){
pe.printStackTrace();
}
mascaraCnpj.setPlaceholderCharacter('_');
mascaraCnpj.setValidCharacters("[telefone removido]");
mascaraCnpj.install(txtFormatCnpj);
MaskFormatter mascaraData = null;
try {
mascaraData = new MaskFormatter("##/##/####");
} catch (ParseException pe) {
pe.printStackTrace();
}
mascaraData.setPlaceholderCharacter('_');
mascaraData.setValidCharacters("[telefone removido]");
mascaraData.install(txtFormatDataOrigem);
MaskFormatter mascaraCep = null;
try {
mascaraCep = new MaskFormatter("#####-###");
}
catch (ParseException pe){
pe.printStackTrace();
}
mascaraCep.setPlaceholderCharacter('_');
mascaraCep.setValidCharacters("[telefone removido]");
mascaraCep.install(txtFormatCep);
}
private void btnFecharActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
private void btnProximoElemActionPerformed(java.awt.event.ActionEvent evt) {
try{
if(getCadastroDePessoas().getPosicao() < getCadastroDePessoas().getLista().size()){
txtNome.setText(getCadastroDePessoas().proximaPessoaDaLista().getNome());
txtBairro.setText(getCadastroDePessoas().pessoaPosicaoAtual().getBairro());
txtCidade.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCidade());
txtEndereco.setText(getCadastroDePessoas().pessoaPosicaoAtual().getEndereco());
txtTelefone.setText(getCadastroDePessoas().pessoaPosicaoAtual().getTelefone());
txtEmailGeral.setText(getCadastroDePessoas().pessoaPosicaoAtual().getEmail());
txtFormatCpf.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCpf());
txtFormatCnpj.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCnpj());
txtUF.setText(getCadastroDePessoas().pessoaPosicaoAtual().getUf());
txtFax.setText(getCadastroDePessoas().pessoaPosicaoAtual().getFax());
txtApelido.setText(getCadastroDePessoas().pessoaPosicaoAtual().getApelido());
txtHomePage.setText(getCadastroDePessoas().pessoaPosicaoAtual().getHomepage());
txtFormatCep.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCep());
txtPosicaoLista.setText(String.valueOf(getCadastroDePessoas().getPosicao()));
if(getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem() != null){
Date data = getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem();
txtFormatDataOrigem.setText(sdf.format(data));
}
}
else{
JOptionPane.showMessageDialog(null, "Não há proximo registro", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
catch(IndexOutOfBoundsException iofbe){
JOptionPane.showMessageDialog(null, "Não há proximo registro", "ERRO", JOptionPane.ERROR_MESSAGE);
}
catch(NumberFormatException nfe){
nfe.printStackTrace();
}
}
private void btnUltimoElemActionPerformed(java.awt.event.ActionEvent evt) {
try{
if(getCadastroDePessoas().getLista().size() > 0){
txtNome.setText(getCadastroDePessoas().ultimaPessoaDaLista().getNome());
txtBairro.setText(getCadastroDePessoas().ultimaPessoaDaLista().getBairro());
txtCidade.setText(getCadastroDePessoas().ultimaPessoaDaLista().getCidade());
txtEndereco.setText(getCadastroDePessoas().ultimaPessoaDaLista().getEndereco());
txtTelefone.setText(getCadastroDePessoas().ultimaPessoaDaLista().getTelefone());
txtEmailGeral.setText(getCadastroDePessoas().ultimaPessoaDaLista().getEmail());
txtFormatCpf.setText(getCadastroDePessoas().ultimaPessoaDaLista().getCpf());
txtFormatCnpj.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCnpj());
txtUF.setText(getCadastroDePessoas().ultimaPessoaDaLista().getUf());
txtFax.setText(getCadastroDePessoas().ultimaPessoaDaLista().getFax());
txtApelido.setText(getCadastroDePessoas().ultimaPessoaDaLista().getApelido());
txtHomePage.setText(getCadastroDePessoas().ultimaPessoaDaLista().getHomepage());
txtFormatCep.setText(getCadastroDePessoas().ultimaPessoaDaLista().getCep());
txtPosicaoLista.setText(String.valueOf(getCadastroDePessoas().ultimaPosicaoDaLista()));
if(getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem() != null){
Date data = getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem();
txtFormatDataOrigem.setText(sdf.format(data));
}
}
else{
JOptionPane.showMessageDialog(null, "Não há registros", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
catch(IndexOutOfBoundsException iofbe){
JOptionPane.showMessageDialog(null, "Não há registros", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
private void btnPrimeiroElemActionPerformed(java.awt.event.ActionEvent evt) {
try{
if(getCadastroDePessoas().getLista().size() > 0){
txtNome.setText(getCadastroDePessoas().primeiraPessoaDaLista().getNome());
txtBairro.setText(getCadastroDePessoas().primeiraPessoaDaLista().getBairro());
txtCidade.setText(getCadastroDePessoas().primeiraPessoaDaLista().getCidade());
txtEndereco.setText(getCadastroDePessoas().primeiraPessoaDaLista().getEndereco());
txtTelefone.setText(getCadastroDePessoas().primeiraPessoaDaLista().getTelefone());
txtEmailGeral.setText(getCadastroDePessoas().primeiraPessoaDaLista().getEmail());
txtFormatCpf.setText(getCadastroDePessoas().primeiraPessoaDaLista().getCpf());
txtFormatCnpj.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCnpj());
txtUF.setText(getCadastroDePessoas().primeiraPessoaDaLista().getUf());
txtFax.setText(getCadastroDePessoas().primeiraPessoaDaLista().getFax());
txtApelido.setText(getCadastroDePessoas().primeiraPessoaDaLista().getApelido());
txtHomePage.setText(getCadastroDePessoas().primeiraPessoaDaLista().getHomepage());
txtFormatCep.setText(getCadastroDePessoas().primeiraPessoaDaLista().getCep());
txtPosicaoLista.setText(String.valueOf(getCadastroDePessoas().primeiraPosicaoDaLista()));
if(getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem() != null){
Date data = getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem();
txtFormatDataOrigem.setText(sdf.format(data));
}
}
else{
JOptionPane.showMessageDialog(null, "Não há registros", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
catch(IndexOutOfBoundsException iofbe){
JOptionPane.showMessageDialog(null, "Não há registros", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
private void btnAnteriorElemActionPerformed(java.awt.event.ActionEvent evt) {
try{
if(getCadastroDePessoas().getPosicao() >= 0){
txtNome.setText(getCadastroDePessoas().pessoaAnteriorDaLista().getNome());
txtBairro.setText(getCadastroDePessoas().pessoaPosicaoAtual().getBairro());
txtCidade.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCidade());
txtEndereco.setText(getCadastroDePessoas().pessoaPosicaoAtual().getEndereco());
txtTelefone.setText(getCadastroDePessoas().pessoaPosicaoAtual().getTelefone());
txtEmailGeral.setText(getCadastroDePessoas().pessoaPosicaoAtual().getEmail());
txtFormatCpf.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCpf());
txtFormatCnpj.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCnpj());
txtUF.setText(getCadastroDePessoas().pessoaPosicaoAtual().getUf());
txtFax.setText(getCadastroDePessoas().pessoaPosicaoAtual().getFax());
txtApelido.setText(getCadastroDePessoas().pessoaPosicaoAtual().getApelido());
txtHomePage.setText(getCadastroDePessoas().pessoaPosicaoAtual().getHomepage());
txtFormatCep.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCep());
txtPosicaoLista.setText(String.valueOf(getCadastroDePessoas().getPosicao()));
if(getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem() != null){
Date data = getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem();
txtFormatDataOrigem.setText(sdf.format(data));
}
}
else{
JOptionPane.showMessageDialog(null, "Não há registro anterior", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
catch(IndexOutOfBoundsException iofbe){
JOptionPane.showMessageDialog(null, "Não há registro anterior", "ERRO", JOptionPane.ERROR_MESSAGE);
}
}
private void btnIrParaActionPerformed(java.awt.event.ActionEvent evt) {
try{
txtNome.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getNome());
txtBairro.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getBairro());
txtCidade.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getCidade());
txtEndereco.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getEndereco());
txtTelefone.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getTelefone());
txtEmailGeral.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getEmail());
txtFormatCpf.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getCpf());
txtFormatCnpj.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getCnpj());
txtUF.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getUf());
txtFax.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getFax());
txtApelido.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getApelido());
txtHomePage.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getHomepage());
txtFormatCep.setText(getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getCep());
getCadastroDePessoas().setPosicao(Integer.parseInt(txtIrPara.getText()));
if(getCadastroDePessoas().pessoaPosicaoAtual().getDataOrigem() != null){
Date data = getCadastroDePessoas().getLista().get(Integer.parseInt(txtIrPara.getText())).getDataOrigem();
txtFormatDataOrigem.setText(sdf.format(data));
}
txtPosicaoLista.setText(txtIrPara.getText());
}
catch(IndexOutOfBoundsException iofbe){
JOptionPane.showMessageDialog(null, "Não há elementos na posição selecionada", "ERRO", JOptionPane.ERROR_MESSAGE);
}
catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, "Este campo deve ser preenchido com números e sem espaços entre eles", "ERRO", JOptionPane.WARNING_MESSAGE);
}
finally{txtIrPara.setText("");
}
}
private void btnAddNovaPessoaActionPerformed(java.awt.event.ActionEvent evt) {
jAdicionaNovo.setVisible(true);
}
private void btnAlterarActionPerformed(java.awt.event.ActionEvent evt) {
if(getCadastroDePessoas().getLista().size() > 0){
if(txtNome.getText().length() == 0){
JOptionPane.showMessageDialog(null, "O campo nome deve ser preenchido", "Cuidado", JOptionPane.WARNING_MESSAGE);
return;
}
else{
getCadastroDePessoas().pessoaPosicaoAtual().setNome(txtNome.getText());
}
if(!txtFormatCpf.getText().equalsIgnoreCase("___.___.___-__") && !txtFormatCnpj.getText().equalsIgnoreCase("__.___.___/____-__")){
JOptionPane.showMessageDialog(null, "Os campos CPF e CNPJ não podem estar preenchidos simultaneamente", "Cuidado", JOptionPane.WARNING_MESSAGE);
return;
}
else if(!txtFormatCpf.getText().equalsIgnoreCase("___.___.___-__")){
getCadastroDePessoas().pessoaPosicaoAtual().setCpf(txtFormatCpf.getText());
}
else if(!txtFormatCnpj.getText().equalsIgnoreCase("__.___.___/____-__")){
getCadastroDePessoas().pessoaPosicaoAtual().setCnpj(txtFormatCnpj.getText());
}
getCadastroDePessoas().pessoaPosicaoAtual().setApelido(txtApelido.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setEndereco(txtEndereco.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setBairro(txtBairro.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setCidade(txtCidade.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setUf(txtUF.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setCep(txtFormatCep.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setTelefone(txtTelefone.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setHomepage(txtHomePage.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setFax(txtFax.getText());
getCadastroDePessoas().pessoaPosicaoAtual().setEmail(txtEmailGeral.getText());
salvaEAbre.salvaRegistro(getCadastroDePessoas());
gerenciaTabelas.alteraDado(getCadastroDePessoas().pessoaPosicaoAtual().parametroAlteraTabPessoas() + (getCadastroDePessoas().getPosicao()+1));
JOptionPane.showMessageDialog(null, "Dados alterados com sucesso", "", JOptionPane.PLAIN_MESSAGE);
}
else{
JOptionPane.showMessageDialog(null, "Não há elementos no cadastro", "", JOptionPane.INFORMATION_MESSAGE);
}
}
private void opcCpfActionPerformed(java.awt.event.ActionEvent evt) {
if(opcCpf.isSelected()){
txtFormatCpf.setEnabled(true);
txtFormatCnpj.setEnabled(false);
}
}
private void opcCnpjActionPerformed(java.awt.event.ActionEvent evt) {
if(opcCnpj.isSelected()){
txtFormatCnpj.setEnabled(true);
txtFormatCpf.setEnabled(false);
}
}
private void btnDeletaRegistroAtualActionPerformed(java.awt.event.ActionEvent evt) {
if(getCadastroDePessoas().getLista().size() > 0){
getCadastroDePessoas().remove(getCadastroDePessoas().pessoaPosicaoAtual());
if(getCadastroDePessoas().getPosicao() < getCadastroDePessoas().getLista().size()){
txtNome.setText(getCadastroDePessoas().pessoaPosicaoAtual().getNome());
txtBairro.setText(getCadastroDePessoas().pessoaPosicaoAtual().getBairro());
txtCidade.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCidade());
txtEndereco.setText(getCadastroDePessoas().pessoaPosicaoAtual().getEndereco());
txtTelefone.setText(getCadastroDePessoas().pessoaPosicaoAtual().getTelefone());
txtEmailGeral.setText(getCadastroDePessoas().pessoaPosicaoAtual().getEmail());
txtFormatCpf.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCpf());
txtFormatCnpj.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCnpj());
txtUF.setText(getCadastroDePessoas().pessoaPosicaoAtual().getUf());
txtFax.setText(getCadastroDePessoas().pessoaPosicaoAtual().getFax());
txtApelido.setText(getCadastroDePessoas().pessoaPosicaoAtual().getApelido());
txtHomePage.setText(getCadastroDePessoas().pessoaPosicaoAtual().getHomepage());
txtFormatCep.setText(getCadastroDePessoas().pessoaPosicaoAtual().getCep());
}
else{
txtNome.setText("");
txtBairro.setText("");
txtCidade.setText("");
txtEndereco.setText("");
txtTelefone.setText("");
txtEmailGeral.setText("");
txtFormatCpf.setText("");
txtFormatCnpj.setText("");
txtUF.setText("");
txtFax.setText("");
txtApelido.setText("");
txtHomePage.setText("");
txtFormatCep.setText("");
}
salvaEAbre.salvaRegistro(getCadastroDePessoas());
// gerenciaTabelas.excluiRegistro(getCadastroDePessoas().pessoaPosicaoAtual().parametroDeletaTabPessoas() + getCadastroDePessoas().getPosicao());
JOptionPane.showMessageDialog(null, "Registro Excluído com sucesso");
}
else{
JOptionPane.showMessageDialog(null, "Não há elementos no cadastro", "Cuidado", JOptionPane.INFORMATION_MESSAGE);
}
}
public CadastroDePessoas getCadastroDePessoas(){
return jAdicionaNovo.getCdp();
}
public JFormattedTextField getTxtFormatCnpj(){
return txtFormatCnpj;
}
public JTextField getTxtNome(){
return txtNome;
}
public JTextField getTxtApelido(){
return txtApelido;
}
public JTextField getTxtBairro(){
return txtBairro;
}
public JFormattedTextField getTxtFormatCep(){
return txtFormatCep;
}
public JTextField getTxtCidade(){
return txtCidade;
}
public JTextField getTxtEmailGeral(){
return txtEmailGeral;
}
public JTextField getTxtEndereco(){
return txtEndereco;
}
public JTextField getTxtFax(){
return txtFax;
}
public JTextField getTxtUf(){
return txtUF;
}
public JTextField getTxtTelefone(){
return txtTelefone;
}
public JTextField getTxtHomePage(){
return txtHomePage;
}
public JTextField getTxtPosicaoLista(){
return txtPosicaoLista;
}
public JFormattedTextField getTxtFormatCpf(){
return txtFormatCpf;
}
public JFormattedTextField getTxtFormatDataOrigem(){
return txtFormatDataOrigem;
}
}
JAddNovo: (sem codigo auto-gerado)
package Interface;
import Classes.CadastroDePessoas;
import Classes.GerenciaTabelas;
import Classes.Pessoa;
import Classes.PlainDocument;
import Classes.SalvaEAbre;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.text.MaskFormatter;
public class JanelaAdicionarNovo extends javax.swing.JFrame {
GerenciaTabelas gerenciaTabelas = new GerenciaTabelas();
SalvaEAbre salvaEAbre = new SalvaEAbre();
private JanelaCadastroDePessoas jCadPessoas = new JanelaCadastroDePessoas();
private CadastroDePessoas cadastroDePessoas = salvaEAbre.abreRegistro();
public JanelaAdicionarNovo() {
initComponents();
this.setTitle("Adicionar Registro");
txtUF.setText("RS");
txtCidade.setText("Porto Alegre");
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setBounds(20, 20, 1024, 768);
txtFormatDataOrigem.setVisible(false);
lblDataOrigem.setVisible(false);
lblDataSemEspacos.setVisible(false);
MaskFormatter mascaraCpf = null;
try {
mascaraCpf = new MaskFormatter("###.###.###-##");
} catch (ParseException pe) {
pe.printStackTrace();
}
mascaraCpf.setPlaceholderCharacter('_');
mascaraCpf.setValidCharacters("[telefone removido]");
mascaraCpf.install(txtFormatCpf);
MaskFormatter mascaraCnpj = null;
try{
mascaraCnpj = new MaskFormatter("##.###.###/####-##");
}
catch(ParseException pe){
pe.printStackTrace();
}
mascaraCnpj.setPlaceholderCharacter('_');
mascaraCnpj.setValidCharacters("[telefone removido]");
mascaraCnpj.install(txtFormatCnpj);
MaskFormatter mascaraData = null;
try {
mascaraData = new MaskFormatter("##/##/####");
} catch (ParseException pe) {
pe.printStackTrace();
}
mascaraData.setPlaceholderCharacter('_');
mascaraData.setValidCharacters("[telefone removido]");
mascaraData.install(txtFormatDataOrigem);
MaskFormatter mascaraCep = null;
try {
mascaraCep = new MaskFormatter("#####-###");
}
catch (ParseException pe) {
pe.printStackTrace();
}
mascaraCep.setPlaceholderCharacter('_');
mascaraCep.setValidCharacters("[telefone removido]");
mascaraCep.install(txtFormatCep);
}
private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
private void btnAdicionarActionPerformed(java.awt.event.ActionEvent evt) {
if(txtNome.getText().trim().length() == 0){
JOptionPane.showMessageDialog(rootPane, "O campo nome deve ser preenchido");
}
else{
String nome = txtNome.getText();
Pessoa pessoa = new Pessoa(nome);
cadastroDePessoas.adiciona(pessoa);
String bairro = txtBairro.getText();
pessoa.setBairro(bairro);
String email = txtEmailGeral.getText();
pessoa.setEmail(email);
String fone = txtTelefone.getText();
pessoa.setTelefone(fone);
String endereco = txtEndereco.getText();
pessoa.setEndereco(endereco);
String cidade = txtCidade.getText();
pessoa.setCidade(cidade);
String uf = txtUF.getText();
pessoa.setUf(uf);
String apelido = txtApelido.getText();
pessoa.setApelido(apelido);
String homepage = txtHomePage.getText();
pessoa.setHomepage(homepage);
String fax = txtFax.getText();
pessoa.setFax(fax);
if(txtFormatCep.getText().length() > 0 && txtFormatCep.getText().length() < 8){
JOptionPane.showMessageDialog(null, "O numero do CEP é inválido");
}
else{
String cep = txtFormatCep.getText();
pessoa.setCep(cep);
}
if(!txtFormatDataOrigem.getText().trim().equals("__/__/____")){
SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
Date agora = new Date();
Date cal = new Date();
try {
cal = formatoData.parse(txtFormatDataOrigem.getText());
}
catch (ParseException ex){
JOptionPane.showMessageDialog(rootPane, "Formato da data incorreto", "Erro", JOptionPane.ERROR_MESSAGE);
return;
}
// TODO validar meses e dias :/
if(cal.after(agora)){
JOptionPane.showMessageDialog(rootPane, "Data inválida", "Cuidado", JOptionPane.WARNING_MESSAGE);
}
else{
pessoa.setDataOrigem(cal);
}
}
if(opcCpf.isSelected()){
if(txtFormatCpf.getText().length() > 0 && txtFormatCpf.getText().length() < 14){
JOptionPane.showMessageDialog(null, "Campo \"CPF\" não esta preechindo completamente","Cuidado", JOptionPane.WARNING_MESSAGE);
}
else{
String cpf = txtFormatCpf.getText();
pessoa.setCpf(cpf);
}
}
else if(opcCnpj.isSelected()){
if(txtFormatCnpj.getText().length() > 0 && txtFormatCnpj.getText().length() < 18){
JOptionPane.showMessageDialog(null, "Campo \"CPF\" não esta preechindo completamente","Cuidado", JOptionPane.WARNING_MESSAGE);
}
else{
String cnpj = txtFormatCnpj.getText();
pessoa.setCnpj(cnpj);
}
}
// TODO APARECER O ULTIMO CARA ADD ;)
jCadPessoas.getTxtApelido().setText(cadastroDePessoas.ultimaPessoaDaLista().getApelido());
jCadPessoas.getTxtBairro().setText(cadastroDePessoas.ultimaPessoaDaLista().getBairro());
jCadPessoas.getTxtCidade().setText(cadastroDePessoas.ultimaPessoaDaLista().getCep());
jCadPessoas.getTxtEmailGeral().setText(cadastroDePessoas.ultimaPessoaDaLista().getEmail());
jCadPessoas.getTxtEndereco().setText(cadastroDePessoas.ultimaPessoaDaLista().getEndereco());
jCadPessoas.getTxtFax().setText(cadastroDePessoas.ultimaPessoaDaLista().getFax());
jCadPessoas.getTxtFormatCep().setText(cadastroDePessoas.ultimaPessoaDaLista().getCep());
jCadPessoas.getTxtFormatCnpj().setText(cadastroDePessoas.ultimaPessoaDaLista().getCnpj());
jCadPessoas.getTxtFormatCpf().setText(cadastroDePessoas.ultimaPessoaDaLista().getCpf());
// DATA TEM QUE FORMATAR PARA TXT jCadPessoas.getTxtFormatDataOrigem().setText(cadastroDePessoas.ultimaPessoaDaLista().getDataOrigem());
jCadPessoas.getTxtHomePage().setText(cadastroDePessoas.ultimaPessoaDaLista().getHomepage());
jCadPessoas.getTxtNome().setText(cadastroDePessoas.ultimaPessoaDaLista().getNome());
jCadPessoas.getTxtPosicaoLista().setText(String.valueOf(cadastroDePessoas.getPosicao()));
jCadPessoas.getTxtTelefone().setText(cadastroDePessoas.ultimaPessoaDaLista().getTelefone());
jCadPessoas.getTxtUf().setText(cadastroDePessoas.ultimaPessoaDaLista().getUf());
salvaEAbre.salvaRegistro(cadastroDePessoas);
gerenciaTabelas.adicionaPessoa(cadastroDePessoas.ultimaPessoaDaLista().parametroAddTabPessoas());
JOptionPane.showMessageDialog(null, "Individuo adicionado com sucesso","Parabéns", JOptionPane.PLAIN_MESSAGE);
this.dispose();
}
}
private void opcCpfActionPerformed(java.awt.event.ActionEvent evt) {
if(opcCpf.isSelected()){
txtFormatCpf.setEnabled(true);
txtFormatCnpj.setEnabled(false);
txtFormatCnpj.setText("");
}
}
private void opcCnpjActionPerformed(java.awt.event.ActionEvent evt) {
if(opcCnpj.isSelected()){
txtFormatCnpj.setEnabled(true);
txtFormatCpf.setEnabled(false);
txtFormatCpf.setText("");
}
}
public JFormattedTextField getDataOrigem(){
return txtFormatDataOrigem;
}
public CadastroDePessoas getCdp(){
return cadastroDePessoas;
}
public void setCdp(CadastroDePessoas cdp){
cadastroDePessoas = cdp;
}
}
public class JanelaCadastroDePessoas extends javax.swing.JFrame { JanelaAdicionarNovo jAdicionaNovo = new JanelaAdicionarNovo(); }public class JanelaAdicionarNovo extends javax.swing.JFrame { private JanelaCadastroDePessoas jCadPessoas = new JanelaCadastroDePessoas(); }
Você tem um JanelaCadastroDePessoas que instancia um JanelaAdicionarNovo que instancia um JanelaCadastroDePessoas que instancia um JanelaAdicionarNovo que instancia um JanelaCadastroDePessoas que instancia um JanelaAdicionarNovo que instancia um....
Voce criou um loop infinito, dê uma conferida nos construtores das duas classe… ao instanciar uma classe JanelaAdicionarNovo, no contrutor dela você instancia uma classe JanelaCadastroDePessoas , que instancia uma JanelaAdicionarNovo, que instancia uma JanelaCadastroDePessoas, etc etc… daí, boom! :shock:
Você tem um JanelaCadastroDePessoas que instancia um JanelaAdicionarNovo que instancia um JanelaCadastroDePessoas que instancia um JanelaAdicionarNovo que instancia um JanelaCadastroDePessoas que instancia um JanelaAdicionarNovo que instancia um…
Isso eu tinha percebido, tu não sabe como eu faço pra ter as duas instancias uma na outra sem dar o problema?
vlw 
Faça um "loader", uma classe responsável por instanciar as duas janelas, e depois setar as variáveis em cada instância... cada janela deve ter uma variável para armazenar a referência da outra... algo assim:
// loader
public class Loader{
public static void main (String[] args){
// instanciar as janelas
Janela1 janela1 = new Janela1();
Janela2 janela2 = new Janela2();
// setar "uma na outra" ... o.O
janela1.setJanela2(janela2);
janela2.setJanela1(janela1);
}
}
Exemplo bem besta, mas acho q deu pra entender... e óbviamente arranque aquela chamada dos construtores de cada janela, e não esqueça de criar as variáveis em cada janela...
Faça um "loader", uma classe responsável por instanciar as duas janelas, e depois setar as variáveis em cada instância... cada janela deve ter uma variável para armazenar a referência da outra... algo assim:// loader public class Loader{ public static void main (String[] args){ // instanciar as janelas Janela1 janela1 = new Janela1(); Janela2 janela2 = new Janela2(); // setar "uma na outra" ... o.O janela1.setJanela2(janela2); janela2.setJanela1(janela1); } }Exemplo bem besta, mas acho q deu pra entender... e óbviamente arranque aquela chamada dos construtores de cada janela, e não esqueça de criar as variáveis em cada janela...
Até que essa (gambiarra) código pode funcionar! :B
vlw, mas naum seria melhor tipo como eu fiz no meu BD
eu fiz parecido com
private static InstanciaBD banco = new InstanciaBD();
getInstancia(){
return banco;
}
Não entendi o que você quis dizer com esse código… =/
O problema é você deixar o construtor (new AlgumaCoisa() ) amarrado na classe, pois toda hora que alguem instanciar ela, vai acabar automaticamente instanciando uma outra…
Eh q eu não entendi muito bem como eu vou fazer pra “setar” uma janela na outra!
:?
// classe loader
public class Loader{
public static void main (String[] args){
// instanciar as janelas
Janela1 janela1 = new Janela1();
Janela2 janela2 = new Janela2();
// setar "uma na outra" ... o.O
janela1.setJanela2(janela2);
janela2.setJanela1(janela1);
}
}
// Janela1
public class Janela1{
//variavel que armazenará a outra janela
private Janela2 janela2;
// ... outras variaveis ...
//getters e setters
public Janela2 getJanela2(){
return this.janela2;
}
public void setJanela2(Janela2 janela2){
this.janela2 = janela2;
}
// outros getters e setters
}
// Janela2
public class Janela2{
//variavel que armazenará a outra janela
private Janela1 janela1;
// ... outras variaveis ...
//getters e setters
public Janela1 getJanela1(){
return this.janela1;
}
public void setJanela1(Janela1 janela1){
this.janela1 = janela1;
}
// outros getters e setters
}
Veja que cada Classe, Janela1 e Janela2 possuem uma variável que armazena a referência para a outra janela... o segredo é instanciar as 2 através de uma outra Classe "base", no caso a Loader, e depois setar a referencia em cada uma das Janelas por essa mesma classe Loader... assim você elimina a necessidade de instanciar uma janela através da outra, que gera o loop...
humm, vou tentar!
ainda não testei, mas deveria ficar assim?
package Classes;
import Interface.JanelaAdicionarNovo;
import Interface.JanelaCadastroDePessoas;
public class CarregadorGUI {
private JanelaCadastroDePessoas jCadPessoas;
private JanelaAdicionarNovo jAddNovo;
public void setarJanelas(){
jCadPessoas.setJAddNovo(jAddNovo);
jAddNovo.setJCadPessoas(jCadPessoas);
}
}
testei agora, soh q mais problemas a vista, tenho alguns metodos que usam instancias dessas classes e ta estourando a nullPointerEx pq elas ainda não foram "instanciadas"
ainda não testei, mas deveria ficar assim?package Classes; import Interface.JanelaAdicionarNovo; import Interface.JanelaCadastroDePessoas; public class CarregadorGUI { private JanelaCadastroDePessoas jCadPessoas; private JanelaAdicionarNovo jAddNovo; public void setarJanelas(){ jCadPessoas.setJAddNovo(jAddNovo); jAddNovo.setJCadPessoas(jCadPessoas); } }
Exatamente, mas instancie elas antes de setar na variável...
package Classes;
import Interface.JanelaAdicionarNovo;
import Interface.JanelaCadastroDePessoas;
public class CarregadorGUI {
private JanelaCadastroDePessoas jCadPessoas;
private JanelaAdicionarNovo jAddNovo;
public void setarJanelas(){
jAddNovo = new JanelaAdicionarNovo();
jCadPessoas = new JanelaCadastroDePessoas();
jCadPessoas.setJAddNovo(jAddNovo);
jAddNovo.setJCadPessoas(jCadPessoas);
}
}
Coloquei, mas continuo estourando a npe!

Coloquei, mas continuo estourando a npe!Então com certeza você não tirou aquela instancia que é criada, aqui::(
public class JanelaAdicionarNovo extends javax.swing.JFrame {
GerenciaTabelas gerenciaTabelas = new GerenciaTabelas();
SalvaEAbre salvaEAbre = new SalvaEAbre();
//private JanelaCadastroDePessoas jCadPessoas = new JanelaCadastroDePessoas(); // <-tira isso
private JanelaCadastroDePessoas jCadPessoas;// <- deixa assim, e faz os get's/set's
private CadastroDePessoas cadastroDePessoas = salvaEAbre.abreRegistro();
public JanelaAdicionarNovo() {
...
Vou postar as classes modificadas: (só a parte que interessa)
JAddPessoas
public class JanelaAdicionarNovo extends javax.swing.JFrame {
GerenciaTabelas gerenciaTabelas = new GerenciaTabelas();
SalvaEAbre salvaEAbre = new SalvaEAbre();
CarregadorGUI loader = new CarregadorGUI();
private JanelaCadastroDePessoas jCadPessoas;
private CadastroDePessoas cadastroDePessoas = salvaEAbre.abreRegistro();
public JanelaAdicionarNovo() {
initComponents();
this.setTitle("Adicionar Registro");
txtUF.setText("RS");
txtCidade.setText("Porto Alegre");
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setBounds(20, 20, 1024, 768);
loader.setarJanelaCad();
.....
JCadPessoas
public class JanelaCadastroDePessoas extends javax.swing.JFrame {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
JanelaAdicionarNovo jAdicionaNovo;
GerenciaTabelas gerenciaTabelas = new GerenciaTabelas();
SalvaEAbre salvaEAbre = new SalvaEAbre();
CarregadorGUI loader = new CarregadorGUI();
public JanelaCadastroDePessoas(){
initComponents();
this.setBounds(20, 20, 1024, 768);
loader.setarJanelaAdd();
....
Não precisa colocar o Loader em cada janela… senão vai dar o mesmo problema… o seu Loader é o ponto de partida, e ele deve ser único…
Bah mano, foi mal, mas eu axo q to meio sequelado, não entendi como eu vou fazer com o loader soh uma vez!
O Loader vai ser a sua classe “main”, você vai iniciar o programa através dele, e apenas dele… ele é responsável por criar as instâncias das janelas… tira esses Loaders das suas janelas, e inicia seu programa apenas pela classe Loader…
o mew, vlw pela ajuda, mas vou ver se acho outro meio, não consegui me encontrar nesse!
vlw!
o mew, vlw pela ajuda, mas vou ver se acho outro meio, não consegui me encontrar nesse!
vlw!
Eu acho que esse é o único jeito… mas o que exatamente você não entendeu aí?
Ou eu expliquei alguma coisa errada, ou o que você pediu não é exatamente o que você está querendo fazer… entendi errado, talvez?