Boa noite
Estou com um problema para fazer um evento de abrir um JInternalFrame em um JDesktoPane , com eventos capturados de um JMenuItem, me ajudem a aporfundar meus estudos na linguagem.
Eu quero criar tudo separado para ver como funciona , se existe uma maneira de fazer isto, bom fiz o seguinte Criei um arquivo onde criei uma classe herdando um JFrame, e coloquei um JDesktopFrame segue o Codigo:
public class TelaIncial extends JFrame{
public JDesktopPane desk;
private JMenuBar jmb;
private JMenu jmCad;
private JMenuItem jmiCadAlim;
public JMenuItem getJmiCadAlim() {
return jmiCadAlim;
}
public void setJmiCadAlim(JMenuItem jmiCadAlim) {
this.jmiCadAlim = jmiCadAlim;
}
public TelaIncial(){
setTitle("Teste");
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setSize(d);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
desk = new JDesktopPane();
setContentPane(desk);
setJMenuBar(montaMenu());
}
public JMenuBar montaMenu(){
jmb = new JMenuBar();
jmCad = new JMenu("Castrar");
jmb.add(jmCad);
jmiCadAlim = new JMenuItem("Cadastrar Alimentador");
jmCad.add(jmiCadAlim);
jmiCadAlim.setMnemonic(KeyEvent.VK_C);
jmiCadAlim.addActionListener(new TelaInicialEvent());
return jmb;
}
public static void main(String[] args){
new TelaIncial();
}
}
Criei uma Classe separada para Controlar o eventos
public class TelaInicialEvent implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object eo = e.getSource();
TelaIncial tiv = new TelaIncial();
CadAlimJInternal cad = new CadAlimJInternal();
if(eo == tiv.getJmiCadAlim()){
tiv.desk.add(cad,this);
}
}
A Classe á cima deveria chamar a Classe abaixo que contem um JInternalFrame e adiciona-la ao JDesktopPane da Classe TelaInicial, porem quando clico no JMenuItem referente ao JInternalFrame, o programa executa sem erros porem ao inves de abrir ele dentro do JDesktopPane ele abre um novo JFrame em branco, como faćo para o camando add o JInternalFrame no JDesktopPane?
public class CadAlimJInternal extends JInternalFrame{
public CadAlimJInternal(){
setTitle("Cadastro de Alimentador");
setVisible(true);
setSize(600,350);
}
}
POR FAVOR ALGUEM ME AJUDE FAZ DIAS QUE ESTOU TENTANDO ISSO, E ME DESCULPE A MINHA IGNORANCIA, POIS FAZ SÓ UM MÊS QUE COMECEI A ESTUDAR JAVA