usa - jpanel java
Cuándo usar JFrame, JLabel y JPanel (2)
He estado, durante mucho tiempo, preguntándome cuándo usar JFrame y JPanel. Me dijeron por medio de libros de texto, en persona y por internet, algunas razones, pero por supuesto, me tomó buscar en la documentación de Java para descubrir que un JPanel tiene el paintComponent (Graphics); método, que le permite especificar qué hacer con el objeto en sí, a diferencia de JFrame. Además, los paneles JP se pueden encajar, lo que permite gráficos más complejos de los que se pueden lograr con un solo contenedor. También tropecé con el hecho de que un JLabel también es un contenedor. (¡Incluso tiene un diseño desastroso!) Ahora mi pregunta es: ¿cuándo debería usar un JLabel y cuándo debería usar un JPanel?
// Sé que puedes poner JLabels dentro de un JPanel, y por accidente, que un JPanel es más caro que un JLabel. Yo, a la larga, planeo hacer un juego de caja que involucre un contenedor liviano para el "dinero" que se mueve a la mano del cliente al hacer clic. Estaba pensando en usar JLabels para los montos monetarios (billetes y monedas) y el JPanel para que sirva como vista general de la (s) transacción (es). También estaba pensando en invocar repintar () (que, a mi entender, puede simular animación) en las "etiquetas de dinero". Esta es una pregunta doble, pero ¿lo verías como la forma menos costosa de hacerlo?
En su mayor parte, JPanel es un contenedor que permite una mejor organización. Cuando necesite organizar sus componentes de su GUI, debe usar un JPanel y definir un diseño para JPanel. También puede anidar JPanels entre sí, etc. JLabels no tiene la capacidad de definir diseños para que se muestren más componentes dentro de JLabel.
Aquí hay un ejemplo de una aplicación que dice "¡Hola mundo!" sin las comillas:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
public class JFrame {
public static void main (strings args[]) {
JFrame frame = new JFrame();
String title = "Hello App";
frame.setTitle(title);
frame.setSize(300, 200);
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panle = new JPanel();
frame.add(panle);
JLabel lable = new JLabel("Hello World!!!");
panle.add(lable);
}
}
El nombre del archivo es "JFrame.java" sin las comillas.