Galera estou agarrado aqui, já procurei no fórum e no google mas não consegui encontrar uma resposta.
Eu tenho duas classes que montam duas janelas no java. Basicamente o que eu quero é o seguinte:
1- na primeira janela (InterfaceAgenda), vc clica em “Novo” pra adcionar um item
2- Ao clicar em “Novo”, ele vai abrir uma segunda janela (InterfaceCriador), que tem os campos pro usuario preencher e instanciar um objeto da classe Compromisso.
3- Ao clicar no botão OK, a janela da classe InterfaceCriador fecha, e ele adciona um item ao atributo listaEventos da classe InterfaceAgenda
é justamente nesse ultimo passo que estou com problemas, pois não consigo acessas os métodos e atributos da classe InterfaceAgenda de dentro da classe InterfaceCriador. Já tentei:
*Criar um método na InterfaceAgenda que adcione um item na listaEventos, e depois acessar esse metodo na InterfaceCriador
*Fazer a classe InterfaceCriador extender a InterfaceAgenda, e o codigo InterfaceAgenda.listaEventos.add(titulo.getText());
*Passar a instância de Compromisso que acabei de criar pra classe InterfaceAgenda, pra assim poder adcionar o item.
Se alguém puder ajudar… abaixo seguem as duas classes:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class InterfaceAgenda extends JFrame{
protected JButton btnDia, btnMes, btnAno, btnNovo, btnEditar, btnRemover;
protected JLabel lblVisualizacao;
public static List listaEventos;
public InterfaceAgenda(){
btnDia = new JButton("dia");
btnMes = new JButton("mes");
btnAno = new JButton("ano");
lblVisualizacao = new JLabel("Visualizar:");
btnNovo = new JButton("Novo");
btnEditar = new JButton("Editar");
btnRemover = new JButton("Remover");
listaEventos = new List();
Container c = this.getContentPane();
c.setLayout(new GridBagLayout());
c.add(lblVisualizacao);
c.add(btnDia);
c.add(btnMes);
c.add(btnAno);
c.add(btnNovo);
c.add(btnEditar);
c.add(btnRemover);
c.add(listaEventos);
OuvinteManipulaObj ouvinte = new OuvinteManipulaObj();
btnNovo.addActionListener(ouvinte);
btnEditar.addActionListener(ouvinte);
btnRemover.addActionListener(ouvinte);
btnEditar.setEnabled(false);
btnRemover.setEnabled(false);
this.setSize(400, 400);
}
public class OuvinteManipulaObj implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()== btnNovo){
criaEvento();
}else if(e.getSource()== btnEditar){
JOptionPane.showMessageDialog(null, "edita");
}else if(e.getSource()==btnRemover){
JOptionPane.showMessageDialog(null, "remove");
}
}
}
public void criaEvento(){
InterfaceCriador novo = new InterfaceCriador();
novo.CriaCompromisso();
novo.setVisible(true);
}
public static void addItemLista(String i){
listaEventos.add(i);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class InterfaceCriador extends JFrame{
public int tipoEvento = 0; //1=compromisso, 2=Tarefa, 3=aniversario
public void CriaCompromisso(){
final JTextField dataIni, horaIni, dataFim, horaFim, titulo, descricao, periodo;
final JLabel lblDataIni, lblDataFim, lblHoraIni, lblHoraFim, lblTitulo, lblDescricao, lblRepetir, lblDiaInteiro, lblPeriodo;
final JButton btnOk, btnCancelar;
final JCheckBox repetir, diaInteiro;
tipoEvento = 1;
dataIni = new JTextField(50);
horaIni = new JTextField(50);
dataFim = new JTextField(50);
horaFim = new JTextField(50);
titulo = new JTextField(50);
descricao = new JTextField(50);
repetir = new JCheckBox();
periodo = new JTextField(50);
diaInteiro = new JCheckBox();
btnOk = new JButton("OK");
btnCancelar = new JButton("Cancelar");
lblDataIni = new JLabel("Data de início:");
lblDataFim = new JLabel("Data de término:");
lblHoraIni = new JLabel("Hora de início:");
lblHoraFim = new JLabel("Hora de término:");
lblTitulo = new JLabel("Título:");
lblDescricao = new JLabel("Descrição:");
lblRepetir = new JLabel("Repetir?");
lblPeriodo = new JLabel("Período de repetição:");
lblDiaInteiro = new JLabel("Dia inteiro?");
Container c = this.getContentPane();
c.setLayout(new GridLayout(10,2));
c.add(lblTitulo);
c.add(titulo);
c.add(lblDescricao);
c.add(descricao);
c.add(lblDataIni);
c.add(dataIni);
c.add(lblHoraIni);
c.add(horaIni);
c.add(lblDataFim);
c.add(dataFim);
c.add(lblHoraFim);
c.add(horaFim);
c.add(lblRepetir);
c.add(repetir);
c.add(lblPeriodo);
c.add(periodo);
c.add(lblDiaInteiro);
c.add(diaInteiro);
c.add(btnOk);
c.add(btnCancelar);
lblPeriodo.setEnabled(false);
periodo.setEnabled(false);
this.setSize(300, 300);
btnOk.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Compromisso c = new Compromisso(dataIni.getText(), dataFim.getText(),
horaIni.getText(), horaFim.getText(), titulo.getText(),
descricao.getText(), repetir.isSelected(), periodo.getText(),
diaInteiro.isSelected());
btnOk.getTopLevelAncestor().hide();
}
});
btnCancelar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
btnCancelar.getTopLevelAncestor().hide();
}
});
}
}