Abrir uma nova frame atraves de um botao

1 resposta
Nox_Generation
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Jogo extends JPanel implements ActionListener {
JButton Jogo,Pontoacoes,Sair;
	JPanel Teste = new JPanel();


public Jogo()
{
	JButton NJogo = new JButton("Novo Jogo");
	JButton Pontuacoes = new JButton("Pontuações");
	JButton Sair = new JButton("Sair");

	
	NJogo.setMnemonic(KeyEvent.VK_J);
	NJogo.setToolTipText("Clique aqui para iniciar um novo jogo");
	NJogo.setActionCommand("J");
	Pontuacoes.setMnemonic(KeyEvent.VK_P);
	Pontuacoes.setToolTipText("Clique aqui para ver as pontuações");
	Pontuacoes.setActionCommand("P");
	Sair.setMnemonic(KeyEvent.VK_S);
	Sair.setToolTipText("Clique aqui para sair");
	Sair.setActionCommand("S");

add(NJogo);
add(Pontuacoes);
add(Sair);

NJogo.addActionListener(this);	
Pontuacoes.addActionListener(this);
Sair.addActionListener(this);

}

public void actionPerformed(ActionEvent e)	
{
	String acao;
	acao=e.getActionCommand();
	if (acao=="J")
		{
		JPanel teste = new JPanel();
		JOptionPane.showMessageDialog(teste,"fodasse");
		}	
	if (acao=="P")
		{
	
		}	
	if (acao=="S")
		{
		
		}	
}

public static void main(String s[])
{
	JFrame.setDefaultLookAndFeelDecorated(true);
	JFrame f = new JFrame();
	f.setSize(800,800);
	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	f.setLocation(200,200);
	f.setTitle("Jogo");
	Jogo painel = new Jogo();
	f.setContentPane(painel);
	f.pack();
	f.setVisible(true);
}

}

É urgente, tenho um trabalho para fazer, que consiste num jogo de perguntas e respostas.
O que eu nao consigo fazer é que ao carregar no botao "Novo Jogo", o programa altere a janela do género em que apareça uma pergunta (label) com 4 radiobuttons(respostas) e uma imagem, e que ao carregar num botao "OK", ele passe para outra pergunta. Ajudem-me, por isso mandei o código para verem.

1 Resposta

brlima

Nao use isso:

f.setContentPane(painel);

O contentPane eh bem mais que um JPanel :smiley:
O correto eh vc adicionar seu panel dentro do ContentPane do seu Frame.

f.getContentPane().add(painel, BorderLayout.CENTER);

Ok ???

Fora isso, vc poderia usar o CardLayout, pois ele funciona como um baralho: vc vai chamando pra frente o Panel que vc quer exibir.

Flw!!!

Criado 6 de julho de 2004
Ultima resposta 6 de jul. de 2004
Respostas 1
Participantes 2