El programa que realice es sencillo. Como se puede ver en las siguientes imágenes incluí botones que cambian de color el panel de la parte superior, y otros dos botones más, uno que deja la ventana tal y como estaba al principio y el otro es el botón de salir.
Imágenes del programa:
Este es el código:
// Librerias usadas en el programa
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
// Aqui comienza nuestra clase
public class Colores implements ActionListener {
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
System.out.print("*");
if (cmd.equals("PRE")) {
this.miPanel.setBackground(Color.WHITE);
this.miTexto.setText("Original");
return;
}
if (cmd.equals("SAL")) {
System.exit(1);
}
if (cmd.equals("CIAN")) {
this.miPanel.setBackground(Color.CYAN);
this.miTexto.setText("Cian");
return;
}
if (cmd.equals("ROJO")) {
this.miPanel.setBackground(Color.RED);
this.miTexto.setText("Rojo");
return;
}
if (cmd.equals("AMARILLO")) {
this.miPanel.setBackground(Color.YELLOW);
this.miTexto.setText("Amarillo");
return;
}
if (cmd.equals("NARANJA")) {
this.miPanel.setBackground(Color.ORANGE);
this.miTexto.setText("Naranja");
return;
}
}
// Atributos de la clase Colores
private JPanel miPanel;
private JLabel miTexto;
// Constructor de Colores
public Colores(JPanel p, JLabel t) {
this.miPanel = p;
this.miTexto = t;
}
// Metodo principal
public static void main(String[] args) {
System.out.println("Bienvenido al programa");
JFrame f = new JFrame();
f.setSize(600, 400);
f.setLocation(300, 100);
f.setTitle("Ventana de Esteban");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Creamos paneles para agrupar elementos
JPanel pArriba = new JPanel();
JPanel pAbajo = new JPanel();
JPanel pIzquierda = new JPanel();
JPanel pDerecha = new JPanel();
JPanel p = new JPanel();
// Administradores de acomodo a cada panel
pArriba.setLayout(new GridBagLayout());
pAbajo.setLayout(new GridLayout(1, 2));
pIzquierda.setLayout(new GridBagLayout());
pDerecha.setLayout(new GridBagLayout());
p.setLayout(new GridLayout(2, 1));
// Asignar un color de fondo a cada panel
pArriba.setBackground(Color.WHITE);
pAbajo.setBackground(Color.WHITE);
pIzquierda.setBackground(Color.GREEN);
pDerecha.setBackground(Color.BLUE);
p.setBackground(Color.GRAY);
// Manejo del GridBagLayout
GridBagConstraints con = new GridBagConstraints();
JLabel aviso = new JLabel();
Colores yo = new Colores(pArriba, aviso);
con.gridx = 1;
con.gridy = 2;
con.gridwidth = 2;
con.gridheight = 3;
JButton boton = new JButton("Predeterminado");
boton.addActionListener(yo);
boton.setActionCommand("PRE");
pIzquierda.add(boton, con);
con.gridx = 1;
con.gridy = 5;
con.gridwidth = 2;
con.gridheight = 2;
pArriba.add(aviso, con);
con.gridx = 2;
con.gridy = 5;
con.gridwidth = 1;
con.gridheight = 1;
JButton salir = new JButton("Salir");
salir.addActionListener(yo);
salir.setActionCommand("SAL");
pIzquierda.add(salir, con);
// Botones de seleccion de color
con.gridx = 1;
con.gridy = 1;
con.gridwidth = 2;
con.gridheight = 3;
JButton bAzul = new JButton("Cian");
bAzul.addActionListener(yo);
bAzul.setActionCommand("CIAN");
pDerecha.add(bAzul, con);
con.gridx = 1;
con.gridy = 4;
con.gridwidth = 2;
con.gridheight = 3;
JButton bRojo = new JButton("Rojo");
bRojo.addActionListener(yo);
bRojo.setActionCommand("ROJO");
pDerecha.add(bRojo, con);
con.gridx = 1;
con.gridy = 7;
con.gridwidth = 2;
con.gridheight = 3;
JButton bAmarillo = new JButton("Amarillo");
bAmarillo.addActionListener(yo);
bAmarillo.setActionCommand("AMARILLO");
pDerecha.add(bAmarillo, con);
con.gridx = 1;
con.gridy = 10;
con.gridwidth = 2;
con.gridheight = 3;
JButton bNaranja = new JButton("Naranja");
bNaranja.addActionListener(yo);
bNaranja.setActionCommand("NARANJA");
pDerecha.add(bNaranja, con);
// Acomodar los paneles creados
p.add(pArriba);
p.add(pAbajo);
pAbajo.add(pIzquierda);
pAbajo.add(pDerecha);
// Colocar el panel en la ventana
f.setContentPane(p);
f.setVisible(true);
return;
}
}



No hay comentarios:
Publicar un comentario