MANEJO DE TABLAS CON ARCHIVOS
EJERCICIO #1
A continuacion presentaremos un ejercicio en java donde podremos manipular datos como el nombre, apellido, y sexo; en el cual usaremos 2 textfields para los nombres y apellidos y un Combobox para el sexo. En la misma ventana podremos escoger la opcion a ejecutar como insertar, borrar, modificar, guardar, leer y salir. Los datos se van a almacenar en un archivo llamado Alumnos.txt ubicado en el disco C.
A continuacion se presentara el codigo que permitira ejecutar dicho proceso:
/* Manejo de Tablas con Archivos*/
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.event.TableModelListener;
import javax.swing.event.TableColumnModelEvent;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableColumnModelListener;
import javax.swing.table.DefaultTableModel;
public class jtablearchivo extends JFrame implements ActionListener{
JLabel l1, l2, l3;
JTextField t1, t2;
JComboBox c1;
JButton b1, b2, b3, b4, b5,b6;
Panel p1, p2, p3, p4;
JTable tabla;
DefaultTableModel modelo;
JScrollPane barra;
String fila[];
DataOutputStream dout;
FileOutputStream fout;
DataInputStream din;
FileInputStream fin;
jtablearchivo(){
l1 = new JLabel(“Nombre”);
l2 = new JLabel(“Edad”);
l3 = new JLabel(“Sexo”);
t1 = new JTextField(15);
t2 = new JTextField(15);
c1 = new JComboBox();
c1.addItem( ”M”);
c1.addItem( ”F”);
b1 = new JButton(“Insertar”);
b2 = new JButton(“Borrar”);
b3 = new JButton(“Modificar”);
b4 = new JButton(“Guardar”);
b5 = new JButton(“Leer”);
b6 = new JButton(“Salir”);
modelo = new DefaultTableModel();
tabla = new JTable(modelo);
barra = new JScrollPane(tabla);
modelo.addColumn(“Nombre”);
modelo.addColumn(“Edad”);
modelo.addColumn(“Sexo”);
p1 = new Panel();
p1.setLayout(new GridLayout(3,2));
p1.add(l1);p1.add(t1);p1.add(l2);p1.add(t2);
p1.add(l3);p1.add(c1);
p2 = new Panel();
p2.setLayout(new GridLayout(6,1));
p2.add(b1);p2.add(b2);p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);
p3 = new Panel();
p3.setLayout(new GridLayout(2,1));
p3.add(p1);p3.add(p2);
p4 = new Panel();
p4.setLayout(new GridLayout(1,2));
p4.add(barra);p4.add(p3);
fila = new String[3];
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
setContentPane(p4);
setSize(400,250);
setVisible(true);
}
public void actionPerformed(ActionEvent ev)
{
Object ob = ev.getSource();
if(ob==b1)
{
fila[0] = t1.getText();
fila[1] = t2.getText();
fila[2] = (String) c1.getSelectedItem();
modelo.addRow(fila);
}
if(ob==b2)
{
modelo.removeRow(tabla.getSelectedRow());
}
if(ob==b3)
{
modelo.setValueAt(t1.getText(),tabla.getSelectedRow(),tabla.getSelectedColumn());
}
if(ob==b4)
{
try{
fout = new FileOutputStream(“C:/Alumnos.txt”,true);
dout = new DataOutputStream(fout);
for(int k=0;k<modelo.getRowCount();k++)
{
dout.writeUTF((String) modelo.getValueAt(k,0));
dout.writeUTF((String) modelo.getValueAt(k,1));
dout.writeUTF((String) modelo.getValueAt(k,2));
}
dout.close();
fout.close();
}
catch(IOException e){}
}
if(ob==b5)
{
try{
fin = new FileInputStream(“C:/Alumnos.txt”);
din= new DataInputStream(fin);
while(true)
{
fila[0] = din.readUTF();
fila[1] = din.readUTF();
fila[2] = din.readUTF();
modelo.addRow(fila);
}
}
catch(IOException e){}
}
if(ob==b6){
hide();
dispose();
}
}
public static void main(String arg[])
{
new jtablearchivo();
}
}
Si quieres acceder a este programa descargar el archivo llamado Manejo Tablas el cual al descargarlo sera un archivo con extension .odt, al momento de guardar la descarga cambialo a la extension .zip.