Olá a todos, acho que não consegui explicar meu problema no título, mas é assim:
Estou criando um jogo, que já está pronto para console, so que queria fazer uma interface gráfica pra ele ficar jogável. Sempre fui horrível com interfaces gráficas =D. O meu problema é esse:
O jogo tem ( ou vai ter ) um menu principal, que possui três botões, um chamado “Play”, outro chamado “Settings”, outro chamado “Credits”, todos estes botões saltam para seus respectivos menus. Criei uma classe que extende JFrame ( Acho que não deveria ter feito isso ) para cada um dos menus, e uma classe Chamada Main, que irá organizar as GUI’s. O handler do evento de cada botão chama um método respectivo na classe Main, que possui uma variavel do tipo JFrame currentMenu, que será mostrada. Pensei em fazer cada um desses métodos modificarem a variavel currentMenu. Porém começei a pensar que o que é mostrado na tela não é a variável, e sim a instancia do JFrame. Começei a procurar um método que fechasse a antiga pra poder colocar uma nova no lugar…
So que achei que ia ficar uma gambiarra completamente esquisita, com janelas reabrindo cada vez q o usuario clica num botão. Dái desisti de fazer do jeito que eu estava fazendo e resolvi pedir ajuda =D. Por favor me ajudem, acho que deve ser feito com um só JFrame só que não sei como fazer. Vou postar o código que eu já tinha feito:
import javax.swing.JFrame;
import gui.MainMenu;
import gui.PlayGameMenu;
import gui.SettingsMenu;
import gui.CreditsMenu;
/**
* Main Game Organizer
* @author Kelvin
*/
public class Main
{
private static JFrame currentJFrame;
private static JFrame mainMenu;
private static JFrame playGameMenu;
private static JFrame settingsMenu;
private static JFrame creditsMenu;
public static void main ( String args[] )
{
mainMenu = new MainMenu();
playGameMenu = new PlayGameMenu();
settingsMenu = new SettingsMenu();
creditsMenu = new CreditsMenu();
}
public void mainMenu()
{
currentJFrame = mainMenu;
defautJFrameOperation();
}
public void playGame()
{
currentJFrame = playGameMenu;
defautJFrameOperation();
}
public void settings()
{
currentJFrame = settingsMenu;
defautJFrameOperation();
}
public void credits()
{
currentJFrame = creditsMenu;
defautJFrameOperation();
}
private void defautJFrameOperation()
{
currentJFrame.setResizable(false);
currentJFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
currentJFrame.setSize( 600, 600 );
currentJFrame.setVisible( true );
}
}
Obrigado e um [] a todos