ayudita en swing
Buenas a todos. Estoy recientemente en el mundillo de java
y haciendo pruebas con componentes swing me encuentro en la siguiente situación:
He creado un Frame en el que le añado un panel que contiene dos botones y dos labels. ejecuto el programa y me aparece el frame pero ni rastro del panel.
¿Alguien me podría indicar que me faltaría poner? aqui les dejo el código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MundoSwing extends JFrame {
/***Declaraciones de los Componentes***/
public JPanel panel1 = null;
public JButton boton1 = null;
public JButton boton2 = null;
public JLabel label1 = null;
public JLabel label2 = null;
public JButton salir = null;
public static void main(String[] agrs) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
MundoSwing ventana = new MundoSwing();
ventana.pack();
ventana.setSize(500, 400);
ventana.setLocation(100, 100);
ventana.setVisible(true);
}
});
}
public void MundoSwing() {
IniciarComponentes();
}
private void IniciarComponentes() {
// Para que se cierre el frame al Pulsar la X de la ventana
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
/**Iniciamos Boton1**/
boton1 = new JButton(\"Pulsa Boton1\");
boton1.addMouseListener( new MouseAdapter() {
public void mouseCliked(MouseEvent evt){
boton1MouseCliked(evt);
}
});
/***Iniciamos label1**/
label1 = new JLabel(\"boton swing1\");
label2 = new JLabel(\"boton swing2\");
/**Iniciamos boton2**/
boton2 = new JButton(\"Pulsa boton2\");
boton2.addMouseListener(new MouseAdapter() {
public void mouseCliked(MouseEvent evt) {
boton2MouseCliked(evt);
}
});
/***Iniciamos Boton Salir*/
salir = new JButton(\"Salir\");
salir.addMouseListener(new MouseAdapter(){
public void mouseCliked(MouseEvent evt){
salirMouseCliked(evt);
}
});
/***Inicializamos panel1***/
panel1 = new JPanel(new GridLayout(0, 1));
panel1.add(label1);
panel1.add(boton1);
panel1.add(label2);
panel1.add(boton2);
panel1.add(salir);
/** Añadimos los paneles al Frame **/
setDefaultLookAndFeelDecorated(true);
getContentPane().add(panel1,BorderLayout.EAST);
setTitle(\"Mundo Swing\");
}
private void boton1MouseCliked(MouseEvent evt) {
JOptionPane.showMessageDialog(null, \"Has pulsado Botón 1\", \"MundoSwing\", JOptionPane.INFORMATION_MESSAGE);
}
private void boton2MouseCliked(MouseEvent evt) {
JOptionPane.showMessageDialog(null, \"Has pulsado Botón 2\", \"MundoSwing\", JOptionPane.INFORMATION_MESSAGE);
}
private void salirMouseCliked(MouseEvent evt) {
System.exit(0);
}
}
y haciendo pruebas con componentes swing me encuentro en la siguiente situación:
He creado un Frame en el que le añado un panel que contiene dos botones y dos labels. ejecuto el programa y me aparece el frame pero ni rastro del panel.
¿Alguien me podría indicar que me faltaría poner? aqui les dejo el código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MundoSwing extends JFrame {
/***Declaraciones de los Componentes***/
public JPanel panel1 = null;
public JButton boton1 = null;
public JButton boton2 = null;
public JLabel label1 = null;
public JLabel label2 = null;
public JButton salir = null;
public static void main(String[] agrs) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
MundoSwing ventana = new MundoSwing();
ventana.pack();
ventana.setSize(500, 400);
ventana.setLocation(100, 100);
ventana.setVisible(true);
}
});
}
public void MundoSwing() {
IniciarComponentes();
}
private void IniciarComponentes() {
// Para que se cierre el frame al Pulsar la X de la ventana
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
/**Iniciamos Boton1**/
boton1 = new JButton(\"Pulsa Boton1\");
boton1.addMouseListener( new MouseAdapter() {
public void mouseCliked(MouseEvent evt){
boton1MouseCliked(evt);
}
});
/***Iniciamos label1**/
label1 = new JLabel(\"boton swing1\");
label2 = new JLabel(\"boton swing2\");
/**Iniciamos boton2**/
boton2 = new JButton(\"Pulsa boton2\");
boton2.addMouseListener(new MouseAdapter() {
public void mouseCliked(MouseEvent evt) {
boton2MouseCliked(evt);
}
});
/***Iniciamos Boton Salir*/
salir = new JButton(\"Salir\");
salir.addMouseListener(new MouseAdapter(){
public void mouseCliked(MouseEvent evt){
salirMouseCliked(evt);
}
});
/***Inicializamos panel1***/
panel1 = new JPanel(new GridLayout(0, 1));
panel1.add(label1);
panel1.add(boton1);
panel1.add(label2);
panel1.add(boton2);
panel1.add(salir);
/** Añadimos los paneles al Frame **/
setDefaultLookAndFeelDecorated(true);
getContentPane().add(panel1,BorderLayout.EAST);
setTitle(\"Mundo Swing\");
}
private void boton1MouseCliked(MouseEvent evt) {
JOptionPane.showMessageDialog(null, \"Has pulsado Botón 1\", \"MundoSwing\", JOptionPane.INFORMATION_MESSAGE);
}
private void boton2MouseCliked(MouseEvent evt) {
JOptionPane.showMessageDialog(null, \"Has pulsado Botón 2\", \"MundoSwing\", JOptionPane.INFORMATION_MESSAGE);
}
private void salirMouseCliked(MouseEvent evt) {
System.exit(0);
}
}
Hola:
Lo único que veo raro es el GridLayout(0,1). Le estás diciendo que quieres cero filas y una columna. Quizás esto haga que el tamaño del panel sea de 0 de alto y x pixels de largo, con lo que no se vería.
Prueba a poner un GridLayout(3,2). 3 filas y dos columnas. Una fila para un label y un botón, la otra para otro label y un boton y la tercera para e boton de "salir"
Se bueno
Lo único que veo raro es el GridLayout(0,1). Le estás diciendo que quieres cero filas y una columna. Quizás esto haga que el tamaño del panel sea de 0 de alto y x pixels de largo, con lo que no se vería.
Prueba a poner un GridLayout(3,2). 3 filas y dos columnas. Una fila para un label y un botón, la otra para otro label y un boton y la tercera para e boton de "salir"
Se bueno