Código Java – Llenar JTable


Este es el Ejemplo #02 del Topic: Programación Gráfica en Java.

Para llenar un JTable, conviene crear dos funciones, una para obtener los encabezados de las columnas y otra que contiene los datos de cada fila, en este ejemplo las funciones son: getFilas() y getColumnas().

El proceso para llenar el JTable, se realiza llenando el modelo que se pasará al JTable como argumento al momento de ser instanciado:

...
        DefaultTableModel dtmEjemplo = new DefaultTableModel(getFilas(),
                                                             getColumnas());
...

Código de Ejemplo:

package beastieux.gui;

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

/**
 *
 * @author beastieux
 */
public class Ejm02_LlenarJTable extends JFrame {
    public Ejm02_LlenarJTable()
    {

        JTable tblEjemplo = new JTable();
        JScrollPane scpEjemplo= new JScrollPane();

        //Llenamos el modelo
        DefaultTableModel dtmEjemplo = new DefaultTableModel(getFilas(),
                                                             getColumnas());

        tblEjemplo.setModel(dtmEjemplo);
        scpEjemplo.add(tblEjemplo);
        this.add(scpEjemplo);
        this.setSize(500, 200);

        scpEjemplo.setViewportView(tblEjemplo);

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    }

    //Datos de las filas
    private Object[][] getFilas()
    {
         Object fila[][]=new Object[][] {
                            {"a1", "b1", "c1", "d1"},
                            {"a2", "b2", "c2", "d2"},
                            {"a3", "b3", "c3", "d3"}};
         return fila;
    }

    //Encabezados de la tabla
    private String[] getColumnas()
    {
          String columna[]=new String[]{"A","B","C", "D"};
          return columna;
    }

    public static void main(String args[]) {
        Ejm02_LlenarJTable obj = new Ejm02_LlenarJTable();
        obj.setVisible(true);
    }
}
Anuncios

Código Scilab – Método de la Bisección



function y=f(x)
y=exp(-x^2)-x;
endfunction


function xr=biseccion(xai,xbi,tol)
i=1;
ea(1)=100;
if f(xai)*f(xbi) < 0
    xa(1)=xai;
    xb(1)=xbi;
    xr(1)=(xa(1)+xb(1))/2;
    printf('It.\t\t Xa\t\t Xr\t\t Xb\t  Error  \n');
    printf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
    while abs(ea(i)) >= tol
      if f(xa(i))*f(xr(i))< 0
         xa(i+1)=xa(i);
         xb(i+1)=xr(i);
      end
      if f(xa(i))*f(xr(i))> 0
         xa(i+1)=xr(i);
         xb(i+1)=xb(i);
	  end      
      xr(i+1)=(xa(i+1)+xb(i+1))/2;
      ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);
      printf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
      i=i+1;
   end
else
   printf('No existe una raíz en ese intervalo');
end
endfunction

Código Java – Generar Códigos


//Codificado por: sAfOrAs
import javax.swing.*;
public class SyGCodigo
{
	void leerCodigo()
	{
		SyGCodigo codig = new SyGCodigo();
		int cod=0;
		do{
		String cadena=JOptionPane.showInputDialog("Ingrese su código Numérico de 4 Digitos. ");
		cod=Integer.parseInt(cadena);
			if(cod>9999)
			{
				JOptionPane.showMessageDialog(null,"El código ingresado no es de 4 digitos");
			}
			else if(cod>=0 && cod<1000)
			{
				JOptionPane.showMessageDialog(null,"Código No Admitido por tener digito(s) ceros.");
			}
			else if(cod<0)
			{
				JOptionPane.showMessageDialog(null,"El código ingresado no es de 4 digitos");
			}
		}while(cod<1000 || cod>9999);

		codig.admision(cod);

	}

	void admision(int cod)
	{
	int mod1=0, par=0, impar=0;
		SyGCodigo codig = new SyGCodigo();
		for(int i=1;i<=4;i++)
		{
			if(cod>=10)
				mod1=cod%10;
			else
				mod1=cod;
			if(mod1==0)
			{
				JOptionPane.showMessageDialog(null,"Código No Admitido por tener digito(s) ceros.");
				codig.leerCodigo();

			}
			if(((mod1)%2)==0)
				par++;
			else
				impar++;

				cod=cod/10;
		}

		if(par>=3 || impar>=3)
			JOptionPane.showMessageDialog(null,"FALSE!!... Código INVÁLIDO");
		else
			JOptionPane.showMessageDialog(null,"TRUE!!... Código ADMITIDO");
		System.exit(0);
	}

	public static void main(String[] args)
	{
		SyGCodigo ir = new SyGCodigo();
		ir.leerCodigo();

	}
}

Métodos de ordenamiento hecho en java


ArregloUni.java
public class ArregloUni{
	protected static int MAX=20;
	protected int n;
	protected int []a=new int[MAX];

	public int cantidad(){
		return n;
	}

	public void ingreso(){
		int i,cant;

		do{
			System.out.print("Cuantos elementos : ");
			cant=Leer.datoInt();
		} while(cant<1 || cant>MAX);
		for(i=0;cant>i;i++){
			System.out.print("elemento "+i+":");
			a[i]=Leer.datoInt();
		}
		n=cant;
	}

	public void reporte(){
		int i;

		if(n>0){
			for(i=0;n>i;i++) System.out.print(a[i]+"\t");
			System.out.println("\n");
		}
		else System.out.println("Esta Vacio");
	}

	public int localizar(int x){
		int i=0;
		if(n>0){
			while (i<n-1 && x!=a[i]) i++;
			if (x==a[i]) return i; // Esta en posición i
			else return -1; // No se encuentra
		}
		else return -2; // Esta vacia
	}

	public void insertar(int x, int pos){
		int i;

		if ((n>0) && (n)!=MAX){
			for(i=n-1;pos<=i;i--) a[i+1]=a[i];
			a[pos]=x;
			n=n+1;
		}
		else if (n>0) System.out.println("Desbordamiento");
		else System.out.println("Esta vacio");
	}

	public void suprimir(int pos){
		int i;

		if(n>0){
			for(i=pos;n-1>i;i++) a[i]=a[i+1];
			n=n-1;
		}
		else System.out.println("Esta vacio");
	}
}
DemoOrdenamiento.java
public class DemoOrdenamiento
{
	public static void main(String []args)
	{
		Ordenamiento datos=new Ordenamiento();
		int sw,opcion;

		datos.ingreso();
		sw=1;
		do{

			System.out.println("0. Salir");
			System.out.println("1. Burbuja Derecha Izquierda");
			System.out.println("2. Burbuja de derecha a Izquierda");
			System.out.println("3. Inserción Directa");
			System.out.println("4. Selección Directa");
			System.out.println("5. Metodo Shell");
			System.out.println("6. Ordenamiento rápido");
			System.out.print("Opcion ==> ");
			opcion=Leer.datoInt();
			if(opcion>0)
			{
				System.out.println("Arreglo antes de ordenar");
				datos.reporte();
			}

			switch(opcion)
			{
				case 0: sw=0;break;
				case 1: datos.burbuja_der_izq();break;
				case 2: datos.burbuja_izq_der();break;
				case 3: datos.baraja();break;
				case 4: datos.seleccion_directa();break;
				case 5: datos.shell();break;
				case 6: datos.quicksort(datos.a,0,datos.n-1);break;
			}

			if(opcion>0)
			{
				System.out.println("Arreglo despues de ordenar");
				datos.reporte();
			}

		}while(sw==1);
	}
}
Leer.java
import java.io.*;
public class Leer{
	public static String dato(){
		String sdato = "";
		try{
		// Definir un flujo de caracteres de entrada: flujoE
			InputStreamReader isr =
				new InputStreamReader(System.in);
			BufferedReader flujoE=
				new BufferedReader(isr);
		// Leer. La entrada finaliza al pulsar la tecla Entrar
			sdato = flujoE.readLine();
		}
		catch(IOException e){
			System.err.println("Error: " + e.getMessage());
		}
		return sdato; // devolver el dato tecleado
	}

	public static short datoShort(){
		try{
			return Short.parseShort(dato());
		}
		catch(NumberFormatException e){
			// valor más pequeño
			return Short.MIN_VALUE;
		}
	}

	public static int datoInt(){
		try{
			return Integer.parseInt(dato());
		}
		catch(NumberFormatException e){
			// valor más pequeño
			return Integer.MIN_VALUE;
		}
	}

	public static long datoLong(){
		try{
			return Long.parseLong(dato());
		}
		catch(NumberFormatException e){
			// valor más pequeño
			return Long.MIN_VALUE;
		}
	}

	public static float datoFloat(){
		try{
			Float f = new Float(dato());
			return f.floatValue();
		}
		catch(NumberFormatException e){
			// No es un Número; valor float.
			return Float.NaN;
	}
	}

	public static double datoDouble(){
		try{
			Double d = new Double(dato());
			return d.doubleValue();
		}
		catch(NumberFormatException e){
			// No es un Número; valor double.
			return Double.NaN;
		}
	}

	public static String datoString(){
		return dato();
	}

	public static char datoChar(){
		int c=0;
		try{
			InputStreamReader isr =
				new InputStreamReader(System.in);
			BufferedReader flujoE=
				new BufferedReader(isr);
			c=flujoE.read();
			char car;
			car=(char) c;
			return car;
		}
		catch(IOException e){
			return '\0';
		}
	}
}
Ordenamiento.java
public class Ordenamiento extends ArregloUni
{
	public void burbuja_der_izq()
	{int i,j;
		for(i=1;i<=n-1;i++)
		{System.out.println("Recorrido"+i);//sirve para q en cada recorrido lo valla imprimiendo
			for(j=n-1;j>=i;j--)
				{if(a[j-1]>a[j])
				cambio(a,j-1,j);
				reporte();// se pone para q cada recorrido valla reportando
				}
			}
	}
	public void burbuja_izq_der()
	{int i,j;
		for(i=n-2;i>=0;i--)
		{System.out.println("Recorrido"+-((i-n)+1));
			for(j=0;j<=i;j++)
				{
					if(a[j]>a[j+1])
				cambio(a,j,j+1);
				reporte();
				}
			}

			}

	public void cambio(int[]a,int pos1,int pos2)
	{
		int t;
		t=a[pos1];
		a[pos1]=a[pos2];
		a[pos2]=t;
	}

	public void baraja()
	{
		int i,j,aux;
		for(i=1;i<=n-1;i++)
		{
			aux=a[i];
			j=i-1;
			while(a[j]>aux && j>0)
			{
				a[j+1]=a[j];
				j--;
			}

			if(a[j]>aux)
			{
				a[j+1]=a[j];
				a[j]=aux;
			}
			else
				a[j+1]=aux;
		}
	}

	public void seleccion_directa()
	{
		int i,j,k,aux;
		for(i=0;i<=n-2;i++)
		{
			k=1;
			aux=a[i];
			for(j=i+1;j<=n-1;j++)
				if(a[j]<aux)
				{
					k=j;
					k=a[j];
				}

				a[k]=a[i];
				a[i]=aux;
		}
	}

	public void shell()
	{
		int d,i,sw;
		d=n;
		do{
			d=d/2;
			do{
				sw=0;
				i=-1;
				do{
					i++;
					if(a[i]>a[i+d])
					{
						cambio(a,i,i+d);
						sw=1;
					}
				}while(i+d!=n-1);
			}while(sw!=0);
		}while(d!=1);
	}

	public void quicksort(int data[],int inf,int sup)
	{
		int left,rigth;
		double half;

		left=inf;
		rigth=sup;
		half=data[(left+rigth)/2];
		while(left<rigth)
		{
			while(data[left]<half && left<sup)
				left++;
			while(half<data[rigth] && rigth>inf)
				rigth--;

			if(inf<rigth) quicksort(data,inf,rigth);
			if(left<sup) quicksort(data,left,sup);
		}
	}

}

Estos métodos de ordenamiento fueron implementados en mi curso de Estructura de datos y algoritmos

La clase principal es DemoOrdenamiento.java

Los métodos de ordenamiento que incluyen son:

Burbuja Derecha – Izquierda
Burbuja Izquierda – Derecha
Inserción Directa
Selección Directa
Método Shell
Ordenamiento rápido

Todos estas clases deberìan estar incluidos en el mismo proyecto o en la misma carpeta desde donde se manda la orden al compilador, yo les he probado compilando con gcj y jdk en linux. En el curso usamos una IDE el JCreator sobre windows, espero les sirva.


También te puede Interesar:

Métodos de Ordenamiento en C++

Métodos de ordenamiento hecho en C++


Acabo de encontrar los codigos que habia escrito en C++, sobre tipos de ordenamiento, les servirá para algo.

Método shell: Ordenamiento Shell.cpp
Método quick sort: Ordenamiento por método Quick Sort.cpp
Método Inserción Directa: Ordenamiento por inserción Directa.cpp
Método Inserción Binaria: Ordenamiento por inserción Binaria.cpp
Método Heap sort: Ordenamiento por Heap Sort.cpp
Método de Selección: Ordenamiento método Selección.cpp
Método Radix: Ordenamiento por método Radix.cpp (Nuevo)
Método Burbuja: Ordenamiento por método Burbuja.cpp (Nuevo)

Esta es la librería que los 6 primero métodos lo utilizan (El cual también se encuentra adjuntado con cada código):

Librerias: leearreglo.h

Nuevo: Veo el interés por este tema, así que les dejo una publicación que realicé explicando ventajas y desventajas por cada tipo de ordenamiento. Aquí

También te puede Interesar:

Métodos de Ordenamiento en java