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