Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodriguinho

Mostrar um outro frame

Recommended Posts

Olá galera, sou novo em java e gostaria de tirar uma pequena duvida!Eu tenho um projeto que possui um frame principa composto por um menu JMenuBar, o menu tem um item e gostaria que esse item exibisse(?) um outro frame, como posso fazer isso?desde Já!!!! Thanks........

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não pode exibir um outro frame, a não ser que seja em outra janela, se for isso use novoframe.show().Caso não seja isso, você deverá desistir dos frames e usar jpanel nos novos frames e, no frame principal deverá colocar o layout JCardLayou para permutar entre os panels

Compartilhar este post


Link para o post
Compartilhar em outros sites

Espero que o exemplo abaixo lhe ajude, crie um arquivo com o nome FrmMain.java/* * Created on 25/01/2005 * * Exemplo de Chamada de um Frame através de outro utilizando ActionPerformed */import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;/** * Frame principal de nosso exemplo * * @author Healley Ardasse Monteiro * */public class FrmMain extends JFrame{ /** * Ponto de partida * * @param args */ public static void main(String[] args) { JFrame frame = new FrmMain(); frame.setVisible(true); } private JMenuBar mbMain = null; private JMenu mnArquivo = null; private JMenuItem mniNovo = null; /** * Este metodo initializa MbMain, JMenuBar ativo do Frame * * @return javax.swing.JMenuBar */ private JMenuBar getMbMain() { if (mbMain == null) { mbMain = new JMenuBar(); mbMain.add(getMnArquivo()); } return mbMain; } /** * Este metodo initializa mnArquivo, JMenu para agrupamento dos jMenuItem. * Neste exemplo setá utilizado apenas um jMenuItem direcionado para a o * objetivo do exemplo, para que não haja muito código fonte desviada da meta * principal, confundindfo assim o leitor interessado. * * @return javax.swing.JMenu */ private JMenu getMnArquivo() { if (mnArquivo == null) { mnArquivo = new JMenu(); mnArquivo.setText("Arquivo"); mnArquivo.add(getMniNovo()); } return mnArquivo; } /** * Este metodo initializa mniNovo, JMenuItem utilizado para chamar o outo * JFrame; * * @return javax.swing.JMenuItem */ private JMenuItem getMniNovo() { if (mniNovo == null) { mniNovo = new JMenuItem(); /* * Apenas iniciação de propriedades. */ mniNovo.setText("Novo"); /* * Ativação do evento para chamar o outro Frame; */ mniNovo.addActionListener(new ListenerChild()); } return mniNovo; } /** * Construtor da classe */ public FrmMain() { super(); initialize(); } /** * alteração das propriedades * * @return void */ private void initialize() { this.setSize(300, 200); this.setTitle("JFrame"); this.setJMenuBar(getMbMain()); }}/** * Chama o outro Frame */class ListenerChild implements ActionListener{ public void actionPerformed(ActionEvent e) { FrmChild.getFrame().setVisible(true); }}/** * Frame secundário a ser chamado po outro Frame */class FrmChild extends JFrame{ /** * Variavel estatica para centralização,e verificação, da instancia no novo * Frame */ private static FrmChild frame = null; /** * Metodo que checa se já existe uma instância da classe, e a instancia, caso * não exista, tendo a mesma como returno. * * @return FrmChild */ public static FrmChild getFrame() { if (frame == null) { frame = new FrmChild(); } return frame; } /** * Construtor Default */ public FrmChild() { super(); initialize(); } /** * Alteração das propriedades. * */ private void initialize() { this.setTitle("Janela Filha"); this.setSize(150, 50); }}

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu, pessoal!!Consegui da seguinte forma:no frame1 eu coloqueiprivate void ................public void actionPerfomed...............JFrame frame = new Frame2();rolou sem problemas, mas mesmo assim, Obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.