sábado, 7 de septiembre de 2013

Componentes Atomicos Java Swing

Hola, en esta entrada vamos a continuar profundizando de a poco en los diferentes componentes Java Swing....... 
En el articulo agrupamos unos cuantos de los principales elementos por categorías, ahora veremos la forma de construirlos y al final los agruparemos en una misma aplicación...

En el articulo anterior primero hablamos de los Contenedores, sin embargo esta vez iniciaremos por los Componentes Atómicos ya que estos serán los elementos que los contenedores alojarán...

Que Son?

Como se ha mencionado, Los componentes atómicos son los elementos que no pueden almacenar otros objetos o componentes gráficos,  podríamos relacionarlos  como componentes simples, pues su función esta bien definida en lo que ellos deben hacer...

Cuales Son?

Veamos una pequeña descripción y la forma de crear los elementos de esta categoría, la idea es mostrar la forma básica de instanciarlos, dejaré también un enlace al Api de Java de cada componente donde se pueden evidenciar todos los metodos y documentación asociada, realmente es muy recomendable entenderla...

JLabel.
Son etiquetas de texto, sin embargo podemos usar sus propiedades para vincular imágenes  por lo regular las utilizamos para títulos, nombres o información puntual que queremos mostrar (Api de Java).
JLabel miLabel;
miLabel= new JLabel();
miLabel.setText("Esto es un Label");

JButton.
Esta clase permite la creación de botones simples, es uno de los elementos mas comunes y usados en las GUI's, trabajan gracias a eventos que se deben implementar a las clases que los usen, igual que los JLabels, pueden vincular imágenes o iconos (Api de Java).
JButton miBoton;
miBoton= new JButton();
miBoton.setText("Boton");

JCheckBox
Son Casilla de verificación permite al usuario seleccionar una o mas de las opciones propuestas, ideales en aplicaciones con preguntas de selección múltiple con multiple respuestas (Api de Java).
JCheckBox miCheckbox;
miCheckbox = new JCheckBox();
miCheckbox.setText("Check1");

JRadioButton
Permite presentar opciones de selección similares a las checkbox, solo que el enfoque de estas es de única selección, para trabajar con los RadioButtons se debe hacer uso de un ButtonGroup para determinar la selección única, ideales en aplicaciones con preguntas de selección múltiple con única respuesta (Api de Java).
JRadioButton miRadioButton;
miRadioButton = new JRadioButton();
miRadioButton.setText("Radio1");


JToggleButton
Esta clase provee un botón que al oprimirlo se quedará presionado hasta que se oprima nuevamente, ideal para aplicaciones donde se quiera simular un botón de activación, tipo interruptor (Api de Java).
JToggleButton miToggleButton;
miToggleButton = new JToggleButton();
miToggleButton.setText("Activar");

JComboBox
Clase que permite mostrar una lista de elementos como un combo de selección, ideal para gran cantidad de opciones de selección única (Api de Java).
JComboBox miCombo;
miCombo = new JComboBox();
miCombo.addItem("Opciones");
miCombo.addItem("Opcion1");
miCombo.addItem("Opcion2");
miCombo.addItem("Opcion3");
miCombo.addItem("Opcion4");


JSeparator
Esta clase permite dibujar una barra simple en la ventana (o simplemente un raya), se puede crear de forma horizontal o vertical, por lo regular es usada como separador de items en una barra de menú (Archivo|Edición|Ver|Insertar...) (Api de Java).
JSeparator separadorHorizontal;
separadorHorizontal = new JSeparator();
separadorHorizontal.setBounds(430, 92, 100, 5);

JSlider
Permite vincular un Deslizador en nuestra ventana, un JSlider es una barra deslizadora que permite al usuario definir un valor entre un mínimo o máximo definido con solo arrastrarlo (Api de Java) . 
JSlider miDeslizado;
miDeslizador = new JSlider(JSlider.HORIZONTAL, 0, 100, 30);
miDeslizador.setBounds(430, 140, 100, 30);
miDeslizador.setValue(0);


JSpinner
Esta clase permite vincular una caja de texto con botones integrados para seleccionar algún valor especifico, recorriendo los valores del rango definido (Api de Java).
JSpinner miSpinner;
miSpinner = new JSpinner();


JProgressBar

Esta clase permite crear una barra de progreso en nuestra aplicación, dicha barra define de forma gráfica el porcentaje de  avance de un proceso cualquiera, por lo regular es usada en el trabajo con hilos o temporizadores (Api de Java).
JProgressBar miBarra;
miBarra = new JProgressBar();
miBarra.setBounds(450, 180, 110, 20);

El Ejemplo.

Como se mencionó les comparto un ejemplo muy simple, no tenemos ningún enunciado ni nada por el estilo, solamente es una aplicación pequeña donde se agrupan de forma sencilla los componentes mencionados.



El ejemplo fue creado todo desde cero (a pedal), todos los componentes son creados directamente desde Eclipse y no se utiliza un layout por defecto (mas adelante trabajaremos los layouts, básicamente estos definen como se muestran los componentes en la ventana), por esta razón los objetos se crean con coordenadas definidas gracias al método setBounds(int x, int y,int a, int b); donde "x" y "y" definen la posición, "a" y "b" definen el ancho y alto...

Se pueden evidenciar los eventos para los componentes que ejecutan alguna acción, para esto se implementan las interfaces necesarias (Ojo, son interfaces no GUI's) usando implements...
public class VentanaPrincipal extends JFrame implements ActionListener,ChangeListener {

y Listo!!! podemos jugar con la aplicación evidenciando su funcionamiento.


Conclusiones.

Ya vimos la forma básica de crear nuestros componentes, simplemente instanciando las clases que Java Swing nos brinda, detrás de cada clase hay mucha información que no terminaríamos de trabajar en esta entrada, por eso recomiendo revisar la api de Java brindada para cada componente así como practicar con cada uno de estos.

En la próxima entrada trabajaremos los componentes de Texto y mas adelante se publicarán nuevos artículos profundizando y haciendo ejemplos con algún componente en especifico.............muy pronto ;)





Descarga.

En el enlace de descarga se encuentra el archivo .rar con la aplicación, solo es cuestión de descomprimir y abrir con
Eclipse pero si usas NetBeans te interesará esta entrada con un vídeo paso a paso de como abrirlo en el.... recuerden que es gratis, y nada cuesta opinar, compartir o agradecer :)





También te podría Interesar.


¿Hay algo que quieras anexar o comentar sobre esta entrada?  no dudes en hacerlo.....y si te gustó...... te invito a compartir
 y Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)

12 comentarios:

  1. Buenas tardes. Tengo que realizar un programa en java eclipse,disponer de tres Botones para Activar o Desactivar tres bombas de agua
    mostrando el estado según lo siguiente:
    a) Si está seleccionada una sola Bomba, mostrar "Normal".
    b) Si están seleccionadas dos Bombas, mostrar: "Precaución".
    c) Si están seleccionadas las tres Bombas, mostrar "Peligro".
    y no logro conectar estos tres botones a un jlabel que muestre esos resultados, quizas puedas ayudarme. desde ya muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola, puedes utilizar 3 JToggleButton, se ajustan para lo que necesitas ya que funcionarian como un interruptor, verifica el codigo del ejemplo y lo aplicas ;) un saludo

      Eliminar
  2. Hola, excelentes ejemplos, he empezado a estudiarlos cada uno, por el momento se me ha generado una duda, el isSelected solo se usa con "un check
    * un radioButton, una opcion del combo o se
    * presiona el ToogleButton", solo con estos componentes, para determinar cuando se han presionado?, muchas gracias.

    ResponderEliminar
    Respuestas
    1. Hola Alexis, la verdad solo lo he utilizado con estos componentes ya que define cuando el evento de selección està o no activo, voy a validar haber si existen otros, pero por el momento no recuerdo que mas... un Saludo

      Eliminar
  3. Muchas gracias, este es el post mas completo y sencillo que he visto. Excelente :D

    ResponderEliminar
  4. Gran trabajo y muy bien explicado. Pero algo que podrías hacer para mejorar es cambiar los enlaces a los elementos de la API y actualizarlos para que te lleven a la API de Java 8. Ahora mismo te llevan a la de Java 6 ya muy antigua y porque no decirlo un poco fea.

    Un saludo y a ver si lo actualizas.

    ResponderEliminar
  5. saludos , muy bueno ... tengo que hacer un programa tipo examen la cual me muestre en la pantalla una pregunta y sus opciones a seleccionar y al final me muestre la calificacion ... Gracias

    ResponderEliminar
  6. muchas gracias por el blog, me ha sido de gran ayuda

    ResponderEliminar

Eres libre de realizar cualquier comentario, desde que pueda ayudar con gusto lo atenderé, y si es un critica, bienvenida sea!!!