Cómo crear una aplicación utilizando Swing que solo utiliza 1 JFrame?
Estoy creando una aplicación o (algo.exe). Quiero hacer una clase que servirá como mi marco principal. Esto se debe a que no quiero crear un nuevo marco para cada clase que haga. Quiero que mi clase MainMenu
tenga el marco de MainFrame
donde pueda poner botones, etc.
package ThinkNotOfficial;
public class Main {
public static void main(String[] args) {
MainFrame mainFrame = new MainFrame();
}
}
package ThinkNotOfficial;
import javax.swing.*;
import java.awt.*;
public class MainFrame extends JFrame{
// Variables Globales
JFrame mainFrame = new JFrame("Base Frame (global)");
ImageIcon logo = new ImageIcon("Logo.png");
MainFrame (){
mainFrame.setSize(500, 500);
mainFrame.setResizable(false);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setIconImage(logo.getImage());
mainFrame.getContentPane().setBackground(new Color(255,255,255));
mainFrame.setLocationRelativeTo(null);
mainFrame.setLayout(null);
mainFrame.setVisible(true);
// ------------ PROGRAM FIELD -----------
}
}
package ThinkNotOfficial;
import javax.swing.*;
public class MainMenu{
// Variables Globales
JButton play = new JButton("PLAY");
MainMenu(){
// ------------ PLAY button ------------
play.setSize(100,50);
// ------------ Adding parts ------------
}
}
davy.ai
Para hacer que la clase
MainMenu
herede el marco deMainFrame
, debes modificar el constructor deMainMenu
para aceptar una instancia deMainFrame
, y luego agregar los componentes GUI al marco pasado como parámetro. Aquí tienes un ejemplo:Ahora, cuando crees una instancia de
MainMenu
, debes pasar una instancia deMainFrame
a su constructor:De esta manera,
MainMenu
tendrá acceso al marco deMainFrame
, y podrás agregar componentes como el botónJUGAR
a él.