Olá amigos! Sou novo por aqui. Estou criando uma aplicação com várias janelas que têm de ser abertas em um JDesktopPane. Fiz o código de uma SplashScreen, o da Janela Principal com Menu e de uma das outras janelas que vão ser chamadas pelo clique no menu. Não vou postar o código da SplashScreen.
Janela Principal:
package Janelas;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Principal extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
//Cria Objeto oDesktop do tipo JDesktopPane.Ele vai dentro do JFrame
private JDesktopPane oDesktop;
//Configura a GUI
public Principal()
{
super("Jogos de Números e Palavras");
setBackground(Color.LIGHT_GRAY);
setLayout(new FlowLayout());
setExtendedState(MAXIMIZED_BOTH);
setVisible(true);
JMenuBar jmbPrincipal = new JMenuBar(); //Cria a barra de menus
JMenu jmTiroBomba = new JMenu("Tiro e Bomba"); //Cria menu "Tiro e Bomba"
jmbPrincipal.add(jmTiroBomba); // Adiciona Menu "Tiro e Bomba" a barra de Menus
JMenuItem jmiJTiroBomba = new JMenuItem("Jogar"); //Cria Item "Jogar"
jmTiroBomba.add(jmiJTiroBomba); // Adiciona Item "Jogar" no Menu "Tiro e Boba"
JMenu jmAcerteNum = new JMenu("Acerte o Número"); //Cria menu "Acerte o Número"
jmbPrincipal.add(jmAcerteNum);// Adiciona Menu "Acerte o Número" a barra de Menus
JMenuItem jmiJAcerteNum = new JMenuItem("Jogar");//Cria Item "Jogar"
jmAcerteNum.add(jmiJAcerteNum);// Adiciona Item "Jogar" no Menu "Acerte o número"
JMenu jmAnagramas = new JMenu("Anagramas"); //Cria menu "Anagramas"
jmbPrincipal.add(jmAnagramas);// Adiciona Menu "Anagrmas" a barra de Menus
JMenuItem jmiJAnagramas = new JMenuItem("Jogar");//Cria Item "Jogar"
JMenuItem jmiMAnagrmas = new JMenuItem("Manter Palavras");//Cria Item "Manter Palavras"
jmAnagramas.add(jmiJAnagramas);// Adiciona Item "Jogar" no Menu "Anagramas"
jmAnagramas.add(jmiMAnagrmas);// Adiciona Item "Manter Palavras" no Menu "Anagramas"
setJMenuBar(jmbPrincipal);//Configura a barra de menus para o aplicativo
oDesktop = new JDesktopPane();//Cria o painel de área de trabalho
add(oDesktop); // Adiciona o painel de área de trabalho ao frame
jmiJTiroBomba.addActionListener
(
new ActionListener() //Classe interna anônima
{
//Exibe novo InternalFrame
public void actionPerformed(ActionEvent event)
{
JInternalFrame frame = new JInternalFrame("Tiro e Bomba",true,true,true,true);
Form_TiroBomba janelaTiroBomba = new Form_TiroBomba();
frame.add(janelaTiroBomba,BorderLayout.CENTER);
frame.pack();
oDesktop.add(frame);
frame.setVisible(true);
}
}
);
}
}
Agora o formulário que tem que ser aberto e ficar interno a tela principal:
package Janelas;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class Form_TiroBomba extends JPanel
{
/**
*
*/
private static final long serialVersionUID = 1L;
public Form_TiroBomba()
{
JLabel lblNumAEnc = new JLabel("Números a Encontrar:"); //Label Números a Encontar
lblNumAEnc.setBounds(12,12,293,86);
add(lblNumAEnc);
lblNumAEnc.setVisible(true);
JLabel lblQNumAEnc = new JLabel("0"); // Label Quantidade de Número a Encontrar
JLabel lblNumEnc = new JLabel("Números Encontrados:"); //Label Números Encontrados
JLabel lblQNumEnc = new JLabel("0"); //Label Quantidade de Números Encontrados
JLabel lblPalpite = new JLabel("Palpite:"); //Label Palpite
JLabel lblTenRes = new JLabel("Tentativas Restantes"); //Label Tentativa Restantes
JLabel lblQTenRes = new JLabel("0"); //Label Quantidade de Tentativas Restantes
JLabel lblTenUs = new JLabel("Tentativas Usadas:"); //Label Tentativas Usadas
JLabel lblQTenUs = new JLabel("0"); //Label Quantidade de Tentativas Usadas
JTextArea txaInstrucoes = new JTextArea(); //TextArea Instções de Jogo
JButton btnChutar = new JButton("Chutar"); // Botão Chutar
setLayout(new FlowLayout()); //Configura o layout de frame
setSize(486,365);
setVisible(true);
}
}
Aqui, está o código completo. Outros componentes da janela ainda não foram feitos. Estou fazendo pelo eclipse na mão.
O que acontece é que o sistema roda sem erros, mas quando clico no JMenuItem correspondente a janela “Tiro e Bomba”, a mesma não abre e no console não mostra nenhum erro. Alguma dica ou solução para resolver esse problema. Agradeço a todos desde já!