JRadioButton, JTable y ArrayList

JRadioButton 


Los botones de opción JRadioButton se utilizan para seleccionar solo un elemento de un conjunto de elementos. La diferencia principal de un JCheckBox y un JRadioButton radica principalmente en ésta característica, ya que un conjunto de JRadioButton solo puedes seleccionar un elemento, mientras que, en un conjunto de JCheckBox puedes seleccionar uno, varios o todos los elementos.

Otra característica importante es que el JRadioButton se identifica generalmente como listas con círculos.

Por último tenemos al ButtonGroup, los radiobutton por si solos no pueden ser mutuamente excluyentes, porque son elementos individuales y si no usamos buttonGroup tendríamos que validar esa característica desde código, pero con un buttonGroup lo hacemos automáticamente.

Imaginemos el ButtonGroup como una caja, donde tendremos unas bolitas -los radiobutton- y cerramos la caja, ahora hacemos una salida en la caja por la cual solo puede pasar una bolita a la vez pero, con la condición de que solo puedes sacar una bolita y si la quieres cambiar tienes que devolverla a la caja, entonces si queremos una bolita podremos sacar una -solamente una-, no podemos hacernos de ninguna más, si queremos otra tendremos que devolver la bolita actual y tomar la otra, en caso contrario los checkbox podemos tener todas las bolitas que queramos.


Desarollo 




1
2
3
4
5
6
7
8
9
10
//Método que retorna el radiobutton
 private JRadioButton getJRb() {
  //inicializamos
  JRadioButton jRb = new JRadioButton();
  //seleccionamos por defecto
  jRb.setSelected(true);
  //posicionamos  jRb.setBounds(80, 100, 20, 20);
  //retornamos el objeto
  return jRb;
 }


Es más util usar el selected(boolean) en los radiobutton, para que siempre exista una opción por defecto y no quede vacío.

Bien ya sabemos crearlos entonces, vamos a hacer un ejemplo rápido con este elemento e integramos el buttonGroup, primero crearemos: tres Jlabel para los textos y dos Checkbox, acá les dejo el código de todos ellos: 



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private JLabel getJLbllGenero() {
  JLabel jLblGenero = new JLabel("Genero");
  jLblGenero.setBounds(10, 80, 80, 30);
  return jLblGenero;
 }
 private JLabel getJLblMasculino() {
  JLabel jLblMasculino = new JLabel("Masculino");
  jLblMasculino.setBounds(10, 100, 80, 30);
  return jLblMasculino;
 }
 private JLabel getJLblFemenino() {
  JLabel jLblFemenino = new JLabel("Femenino");
  jLblFemenino.setBounds(10, 115, 80, 30);
  return jLblFemenino;
 }
 private JRadioButton getJRbMasculino() {
  JRadioButton jRbMasculino = new JRadioButton();
  jRbMasculino.setSelected(true);
  radio1.setBounds(80, 100, 20, 20);
  return jRbMasculino;
 }
 private JRadioButton getJRbFemenino() {
 JRadioButton jRbFemenino = new JRadioButton();
 jRbFemenino.setBounds(80, 120, 20, 20);
 return jRbFemenino;
 }
Hasta ahora todo normal, entonces vamos a crear el ButtonGroup con el siguiente código:
?
1
2
3
4
5
6
7
8
9
//Creación del grupo de botones recibe nuestro jRadioButton creados
 //anteriormente
 private void getButtonGroup (JRadioButton jRbMasculino, JRadioButton jRbFemenino){
  //creamos el objeto
  ButtonGroup btgSexo= new ButtonGroup();
  //añadimos al grupo el primer radioButton
  bgroup.add(jRbMasculino);
  //añadimos al grupo el segundo radioButton
  bgroup.add(jRbFemenino);
 }

Finalmente agregamos todos los elementos al JFrame, mi costructor quedaría así:
?
1
2
3
4
5
6
public Checs() {
   inicializador();

   add(getJLblSexo());
   add(getJLblMasculino());
   add(getJLblFemenino());

?
1
2
3
4
5
  // acá se añaden los radiobutton al buttongruop
  getButtonGroup(getJRbMasculino(), getJRbFemenino());
  add(this.jRbMasculino);
  add(this.jRbFemenino);
}


JTable


JTable es una herramienta visual de Java que sirve para poder dibujar tablas, con sus respectivas filas y columnas en donde puedes ingresar el dato que tu desees, como por ejemplo: tu nombre, tu rut, tu apellido, entre otros.

Para poder usar bien la herramienta JTable, es necesario trabajar con otras herramientas que están vinculadas a su desarrollo, para poder así tener un mejor funcionamiento en el momento de implementar una tabla. Estas herramientas son:


1.- DefaultTableModel

2.- JScrollPane
3.- JFrame
4.- JPanel
5.- awt(abstract windows toolkit o herramienta de ventana abstracta)

El DefaultTableModel es una clase que implementa TableModel que contiene todos los métodos necesarios para modificar datos en su interior, añadir filas o columnas y darle a cada columna el nombre que se desee. Para utilizar DefaultTableModel debemos importarla y luego declararla para luego poder usar la clase JTable, un ejemplo es:

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

DefaultTableModel dtmModelo = new DefaultTableModel();
JTable tabla = new JTable (dtmModelo);

La siguiente herramienta es el JScrollPane, es una clase importada en swing que permite asociarle una pequeña vista o ventana deslizable o corrediza, que permite solo que se vea una parte de dicho complemento en la tabla. Para poder usarlo, importamos la clase y luego la declaramos, un ejemplo sería:



import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;



DefaultTableModel dtmModelo = new DefaultTableModel();
JTable tabla = new JTable (dtmModelo);
JSrollPane scrollpane = new JScrollPane(tabla);


Un JFrame es una clase que implementa como una instancia un frame que es una ventana con decoraciones, tales como: bordes, títulos y botones(íconos y para cerrar la ventana). Para poder utilizar esta herramienta hacemos los siguiente:


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class HolaMundo{
public static void main(String [] args){
JFrame frame = new JFrame("HolaMundoSwing");
......
frame.pack();
frame.setVisible(true);
}
}

Un JPanel es un contenedor ligero genérico que tiene la finalidad de "caja" donde tu puedes ir insertando cosas y así puedes manejarlos como una agrupación. Un ejemplo donde se implementa esta herramienta es:



import javax.swing.*;

import java.awt.*;

import java.awt.event.*;



public class PanelSolo {

public static void main(String[] args) {
JFrame jFrmVentana = new JFrame("Ejemplo");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jPanPanel1 = new JPanel();
JPanel jPanPanel2 = new JPanel();
JPanel jPanPanel3 = new JPanel();
JPanel jPanPanel4 = new JPanel();
JPanel jPanPanel5 = new JPanel();
jFrmVentana.add(jPanPanel1,"North");


jFrmVentana
.add(


jPanPanel2
,"West");


jFrmVentana
.add(


jPanPanel3
,"South");





jFrmVentana
.add(






jPanPanel4

,"Center");



jFrmVentana
.add(






jPanPanel5

,"East");
// Coloreo para distinguir los paneles.
jPanPanel1.setBackground(Color.blue);


jPanPanel1
.setBackground(Color.white);




jPanPanel1
.setBackground(Color.red);



jFrmVentana

.pack();


jFrmVentana

.setVisible(true);
}
}

Por último esta el paquete awt(abstract windows toolkit o herramienta de ventana abstracta), es un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independientes de la plataforma de Java.
Luego de explicar cada definición de las herramientas y un ejemplo de uso, vamos ahora a mostrar un ejemplo completo con todos los elementos que son utilizados para complementar la tabla. El ejemplo es el siguiente:

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;

public class EjemploTabla extends JFrame {
public EjemploTabla() {
super("Tabla de usuarios");
//array bidimencional de objetos con los datos de la tabla
Object[][] data = {"Daniel", "Villar","Esquiar", new Integer(5), new Boolean(false)},
{"Carlos", "Villar","Patinar", new Integer(3), new Boolean(true)},
{"Karinna", "Villar","Escalar", new Integer(2), new Boolean(false)},
{"Mario", "Diaz","Correr", new Integer(7), new Boolean(true)},
{"Sylvia", "Uribe","Modelar", new Integer(4), new Boolean(false)}};

//array de String's con los títulos de las columnas

String[] columnNames = {"Nombre","Apellido","Pasatiempo","Años de Practica","Soltero(a)"};
//creamos el Modelo de la tabla con los datos anteriores

DefaultTableModel dtm= new DefaultTableModel(data, columnNames);
//se crea la Tabla con el modelo DefaultTableModel

final JTable jTable = new JTable(dtm);
// una vez creada la tabla con su modelo
// podemos agregar columnas

String[] newColumn= {"Flan","Pastel","Helado","Barquillo","Manzana" };
dtm.addColumn("Postre",newColumn);
//filas

Object[] newRow={"Pepe", "Grillo","Tenis", new Integer(5), new Boolean(false),  "Pera"};
dtm.addRow(newRow);
//o modificar una celda en especifico

dtm.setValueAt("Catherine", 1, 1);
//se define el tamaño

jTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
//Creamos un JscrollPane y le agregamos la JTable

JScrollPane jScpTabla = new JScrollPane(table);
//Agregamos el JScrollPane al contenedor

getContentPane().add(jScpTabla, BorderLayout.CENTER);
//manejamos la salida

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
EjemploTabla frame = new EjemploTabla();
frame.pack();
frame.setVisible(true);
}
}

ArrayList

La ArrayListclase es una matriz de tamaño variable , que se puede encontrar en el java.utilpaquete.
La diferencia entre una matriz incorporada y una ArrayListen Java, es que el tamaño de una matriz no se puede modificar (si desea agregar o eliminar elementos a / de una matriz, debe crear una nueva). Mientras que los elementos se pueden agregar y quitar de un ArrayListcuando quieras. La sintaxis también es ligeramente diferente:

Ejemplo

Crea un ArrayListobjeto llamado coches que almacenará cadenas:
import java.util.ArrayList// import the ArrayList class
ArrayList<String> cars = new ArrayList<String>(); // Create an ArrayList object

Agregar articulos

La ArrayListclase tiene muchos métodos útiles. Por ejemplo, para agregar elementos al ArrayList, use el add()método:

Ejemplo

import java.util.ArrayList;

public class MyClass { 
  public static void main(String[] args) { 
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    System.out.println(cars);
  } 
}

Acceder a un artículo

Para acceder a un elemento en el ArrayList, use el get()método y consulte el número de índice:

Ejemplo

cars.get(0);

Cambiar un articulo

Para modificar un elemento, use el set()método y consulte el número de índice:

Ejemplo

cars.set(0"Opel");


Quitar un articulo

Para eliminar un elemento, use el remove()método y consulte el número de índice:

Ejemplo

cars.remove(0);

Tamaño de ArrayList

Para averiguar cuántos elementos tiene un ArrayList, use el sizemétodo:

Ejemplo

cars.size();

Recorrer a través de un ArrayList

Recorra los elementos de a ArrayListcon un forbucle y use el size()método para especificar cuántas veces debe ejecutarse el bucle:

Ejemplo

public class MyClass { 
  public static void main(String[] args) { 
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    for (int i = 0; i < cars.size(); i++) {
      System.out.println(cars.get(i));
    }
  } 
}
También se puede recorrer una ArrayListcon el bucle for-each:

Ejemplo

public class MyClass { 
  public static void main(String[] args) { 
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    for (String i : cars) {
      System.out.println(i);
    }
  } 
}

Otros tipos

Los elementos en un ArrayList son en realidad objetos. En los ejemplos anteriores, creamos elementos (objetos) de tipo "Cadena". Recuerde que una Cadena en Java es un objeto (no un tipo primitivo). Para utilizar otros tipos, tales como int, debe especificar una clase de contenedor equivalente: IntegerPara otros tipos primitivos, use: Booleanpara boolean, Characterpara char, Doublepara doble, etc:


Ejemplo


Crear un ArrayListpara almacenar números (agregar elementos de tipo Integer):
import java.util.ArrayList;

public class MyClass { 
  public static void main(String[] args) { 
    ArrayList<Integer> myNumbers = new ArrayList<Integer>();
    myNumbers.add(10);
    myNumbers.add(15);
    myNumbers.add(20);
    myNumbers.add(25);
    for (int i : myNumbers) {
      System.out.println(i);
    }
  } 
}

Ordenar una lista de Array


Otra clase útil en el java.utilpaquete es la Collectionsclase, que incluye el sort()método para ordenar las listas alfabética o numéricamente:

Ejemplo


Ordenar una lista de arrays de cuerdas:
import java.util.ArrayList;
import java.util.Collections;  // Import the Collections class
public class MyClass { 
  public static void main(String[] args) { 
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");

    Collections.sort(cars);  // Sort cars
    for (String i : cars) {
      System.out.println(i);
    }
  } 
}


No hay comentarios.:

Publicar un comentario

JavaScript

JavaScript