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