Pessoal sou novatao com programação e criei um programa onde uma classe cria um container com um menuzinho e um JPanel escrito algumas coisas…
fiz tb com que um metodo dentro desta classe efetue algumas alteracoes no JPanel… funcionou com sucesso…
agora preciso que uma outra classe dentro do mesmo projeto controle o container/JPanel… mas nao consigo fazer isso… ela cria uma janela nova, nao quero isso… quero controlar a mesma janela mas com outra classe… isso eh possivel? estou fazendo besteira?
eh pro meu tcc
JPanel panel;
JLabel msg, msg2, msg3;
Container container = getContentPane();
/** Creates a new instance of Main */
public Main() {
super("BluePhoto");
container.setLayout(new FlowLayout());
//Configura menu Principal
JMenu princMenu = new JMenu("Principal");
princMenu.setMnemonic('P');
//Configura item Novo Album no menu Principal
JMenuItem novoItem = new JMenuItem ("Novo Album");
novoItem.setMnemonic('X');
novoItem.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent event){
//NovoAlbum();
Teste amora = new Teste();
//JOptionPane.showMessageDialog(null, "" + x);
}//Fim actionPerformed
}//fim ActionListener
); //fim chamada addActionListener
princMenu.add(novoItem);
//Configura item Sair no menu Principal
JMenuItem sairItem = new JMenuItem ("Sair");
sairItem.setMnemonic('X');
sairItem.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent event){
System.exit(0);
}//Fim actionPerformed
}//fim ActionListener
); //fim chamada addActionListener
princMenu.add(sairItem);
//Configura menu Ajuda
JMenu ajudaMenu = new JMenu("Ajuda");
ajudaMenu.setMnemonic('A');
//Configura item Sobre no menu Ajuda
JMenuItem sobreItem = new JMenuItem ("Sobre");
sobreItem.setMnemonic('S');
sobreItem.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent event){
}//Fim actionPerformed
}//fim ActionListener
); //fim chamada addActionListener
ajudaMenu.add(sobreItem);
//Cria Menu e insere menus Principal, Ajuda e Sair
JMenuBar bar = new JMenuBar();
setJMenuBar(bar);
bar.add(princMenu);
bar.add(ajudaMenu);
}
public void Janela()
{
panel = new JPanel();
panel.setLayout(new GridLayout(3, 1, 30, 30));
panel.setBackground(Color.LIGHT_GRAY);
JLabel msg = new JLabel ("Bem Vindo ao BluePhoto! Comece já a criar seu álbum de fotos particular!", SwingConstants.CENTER);
JLabel msg2 = new JLabel ("Para iniciar a criação do álbum acesse o menu Principal",SwingConstants.CENTER);
JLabel msg3 = new JLabel ("Boa Diversão!",SwingConstants.CENTER);
msg.setForeground(Color.BLACK);
msg.setFont(new Font("Verdana", Font.BOLD, 15));
msg2.setForeground(Color.BLACK);
msg2.setFont(new Font("Verdana", Font.CENTER_BASELINE, 10));
msg3.setForeground(Color.BLACK);
msg3.setFont(new Font("Verdana", Font.CENTER_BASELINE, 10));
panel.add(msg);
panel.add(msg2);
panel.add(msg3);
container.setBackground(Color.LIGHT_GRAY);
container.add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(1024,768);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Main application = new Main();
application.Janela();
Voce está construindo sua janela.
Na classe Teste, vc extende Main. Então, qd vc executa a classe Teste, seu construtor faz uma chamada ao construtor da classe Main q por sua vez desenha outra janela.
Tente pensar em uma maneira de isso não acontecer, criando um metodo q cria a janela ou outro…
no construtor eu deixei somente o super e os demais codigos eu coloquei no metodo janela()
mesmo assim da o problema… ele abre uma nova janela, porem sem o menu, afinal o menu esta no metodo janela() e eu nao chamei este metodo na classe Teste
alguem tem um exemplo bem simples para me mostrar de 2 classes editando o mesmo container plz?