16 jun. 2010

Ventana con botones

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