Topicos Selectos
Topicos Selectos
Topicos Selectos
JUAREZ
Proyecto Final:
1
ndice
Introduccin..pg. 4
Especificaciones....pg. 6
Tabla de archivos.....pg. 7
Cdigo.......pg. 8-23
Conclusin Grupal.......pg. 26
Logros de aprendizaje.......pg. 27
2
ndice de Figuras
Figura 1.1..pag.24
Figura 1.2..pag.24
Figura 1.3..pag.24
Figura 1.4..pag.25
Figura 1.5..pag.25
Figura 1.6..pag.25
3
INTRODUCCION
Este programa diseado tiene el fin de simular como son los software en una compaa fletera, se ve como
contratar a un camionero y como se van registrando a una base de datos, se almacenan das de salida y llegadas,
cargas, tipo de cargas esto es lo que se presentara en el proyecto
4
Planteamiento del problema
En este proyecto se usara un JTable para la base de datos para poder acomodar los datos en columnas y renglones
y se implementara el ListSelectionListener para poder agregarle un evento ala tabla y asi seleccionar un objeto y
que lo imprima en etiquetas.
Estar diseado por paneles, con manejadores de composicin para poderle dar orden a los componentes y se
usaran varios componentes para dar eficacia al programa.
5
Especificaciones de entrega del Proyecto Final
Tpicos Avanzados de Programacin
6
Tabla de archivos
7
Clase aplicacin
package proyecto;
try
Thread.sleep(4000);
System.out.println("ocurrio excepcion");
logo.dispose();
aut.setVisible(true);
8
Clase Camionero
package proyecto;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
} catch(SQLException ex){
System.err.println("Ocurri Excepcin"+ ex);
}
return 0;
}
9
Clase contrato
package proyecto;
import java.awt.*;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public contrato()
{
super("Contrato de camioneros");
DBconnect();
contenedor =this.getContentPane();
contenedor.setLayout(new BoxLayout(contenedor,BoxLayout.Y_AXIS));
JPanel panelB = new JPanel();
panelB.setLayout(new BoxLayout(panelB,BoxLayout.X_AXIS));
clav = new JLabel("Clave");
nom = new JLabel("Nombre: ");
ap = new JLabel("Apellidos: ");
cd = new JLabel("Ciudad: ");
edad = new JLabel("Edad:");
sex = new JLabel("Sexo: ");
Nclav = new JTextField();
nomb = new JTextField();
apellid= new JTextField();
ciud= new JTextField();
edo= new JTextField();
Tsex= new JTextField();
salir = new JButton("Salir");
salir.addActionListener(this);
aceptar= new JButton("Aceptar");
aceptar.addActionListener(this);
panelB.add(components());
panelB.add(aceptar);
panelB.add(salir);
10
contenedor.add(panelB);
this.setVisible(true);
pack();
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}//constructor
public void DBconnect()
{
String url ="jdbc:mysql://localhost/camionero";
String user ="root";
String pass ="";
try{
conexion =(Connection) DriverManager.getConnection(url, user, pass);
}catch(SQLException ex){
System.err.println("Ocurri Excepcin" + ex);
}
}
private JPanel components()
{
JPanel panel = new JPanel(new GridLayout(2,1));
JPanel panel2 = new JPanel ();
panel2.setLayout(new BoxLayout(panel2,BoxLayout.Y_AXIS));
panel.add(clav);
panel.add(Nclav);
panel.add(nom);
panel.add(nomb);
panel.add(ap);
panel.add(apellid);
panel.add(cd);
panel.add(ciud);
panel.add(edad);
panel.add(edo);
panel.add(sex);
panel.add(Tsex);
panel2.add(panel);
return panel2;
}//
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == aceptar)
{
try
{
stmt = conexion.createStatement();// para evitar consultas a la BD
stmt.executeUpdate("insert into camionero(clave,nombre,apellidos,ciudad,edad,sexo) values ("+Nclav.getText()+",'"
+nomb.getText()+"',"+"'"+apellid.getText()+"','"+
ciud.getText()+"',"+edo.getText()+",'"+Tsex.getText()+"')");
camionero= new camionero(studentcolumnnames);
camionero.tabla= "camionero";
totalregistros= camionero.getRowCount();
int columnas = camionero.getColumnCount();
setVisible(false);
new registro();
}catch(SQLException ex)
{
System.err.println("Ocurri excepcin"+ex);
}
}//if
if(e.getSource()==salir)
{
setVisible(false);
new registro();
}//if
}//metodo
11
Clase login
package proyecto;
import java.awt.event.KeyEvent;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
public login()
{
cont=this.getContentPane();
cont.setLayout(new FlowLayout());
usu=new JLabel("Usuario");
usua=new JTextField(10);
pas=new JLabel("Contrasea");
pasw=new JPasswordField(10);
cont.add(usu);
cont.add(usua);
cont.add(pas);
cont.add(pasw);
cont.add(confi);
cont.add(salir);
confi.addKeyListener(this);
confi.addActionListener(this);
salir.addActionListener(this);
this.setSize(400,100);
this.setLocation(600,350);
this.setTitle("Usuario");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
12
else
{
JOptionPane.showMessageDialog(null,"Usuario y/o Contrasea Incorrecta","Informe",JOptionPane.INFORMATION_MESSAGE);
}
if(e.getKeyCode()== KeyEvent.VK_ENTER)
{
String user =usua.getText();
char passArray[]=pasw.getPassword();
String pass=new String(passArray);
if(user.equals("fleteros")&&pass.equals("1992")&&e.getKeyCode()== KeyEvent.VK_ENTER)
{
this.dispose();
menu men=new menu();
}
else
{
JOptionPane.showMessageDialog(null,"Usuario y/o Contrasea Incorrecta","Informe",JOptionPane.INFORMATION_MESSAGE);
}
}
}
13
Clase Logo
package proyecto;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JWindow;
public Logo()
this.setSize(280,180);
this.setLocationRelativeTo(null);
this.setVisible(true);
14
Clase men
package proyecto;
import ayuda.baseDatos;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public menu()
{
super("Menu compaia fletera");
cont=this.getContentPane();
cont.setLayout(new BorderLayout());
isq=new JPanel();
ImageIcon imagen=new ImageIcon(this.getClass().getResource("camion.jpg"));
ima=new JLabel(imagen);
isq.add(ima);
cent=new JPanel();
cent.setLayout(new FlowLayout());
Box box=Box.createVerticalBox();
regist=new JButton("Registrar salidas");
contrat=new JButton("Contratar camioneros");
dispo=new JButton("Camioneros disponibles");
salir=new JButton("salir");
regist.addActionListener(this);
contrat.addActionListener(this);
dispo.addActionListener(this);
salir.addActionListener(this);
box.add(regist);
box.add(contrat);
box.add(dispo);
box.add(salir);
cent.add(box,BorderLayout.CENTER);
cont.add(isq,BorderLayout.WEST);
cont.add(cent,BorderLayout.CENTER);
this.setVisible(true);
this.setSize(250,250);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
}
15
{
contrato contr=new contrato();
this.dispose();
}
if(e.getSource()==dispo)
{
registro registro=new registro();
this.dispose();
}
if(e.getSource()==salir)
{
this.dispose();
}
}
16
Clase registro
package proyecto;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
17
}
cargaRegistro(regactual);
}
else if(e.getSource()==btnult)
{
regactual=totalregistros -1;
cargaRegistro(regactual);
}
if(e.getSource() == btnsalir)
{
this.dispose();
new menu();
}
if(e.getSource() == agrega)
{
new contrato();
setVisible(false);
}//if
if(e.getSource() == elimina)
{
String numero = JOptionPane.showInputDialog("Ingresa la clave del trabajador");
int a = Integer.parseInt(numero);
try
{
stmt.execute("Delete from camionero where clave= "+a);
} catch (SQLException ex)
{
Logger.getLogger(registro.class.getName()).log(Level.SEVERE, null, ex);
}
setVisible(false);
new registro();
}//if
}//metodo
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()== e.VK_ENTER){
int selRow =tablacamionero.getSelectedRow();
regactual = selRow;
cargaRegistro(regactual);
}
}
public void keyReleased(KeyEvent e) {
}
public void obtienedatos()
{
try{
stmt = conexion.createStatement();// para evitar consultas a la BD
rs = stmt.executeQuery("Select * from camionero");
camionero= new camionero(studentcolumnnames);
camionero.rs=rs;
camionero.rsmd= rs.getMetaData();
camionero.tabla= "camionero";
totalregistros= camionero.getRowCount();
int columnas = camionero.getColumnCount();
}catch(SQLException ex){
System.err.println("Ocurrio excepcion"+ex);
}
}
public void cargaRegistro(int renglon)
{
txtssn.setText(camionero.getValueAt(renglon,0).toString());
txtname.setText(camionero.getValueAt(renglon,1).toString());
18
txtlastname.setText(camionero.getValueAt(renglon,2).toString());
}
public void DBconnect()
{
String url ="jdbc:mysql://localhost/camionero";
String user ="root";
String pass ="";
try{
conexion =(Connection) DriverManager.getConnection(url, user, pass);
}catch(SQLException ex){
System.err.println("Ocurri Excepcin" + ex);
}
}
private void crearGUI() {
cont =this.getContentPane();
splitpane= new JSplitPane(JSplitPane.VERTICAL_SPLIT);
tablacamionero= new JTable(camionero);
tablacamionero.setGridColor(Color.blue);
tablacamionero.setForeground(Color.darkGray);
tablacamionero.setBackground(Color.white);
tablacamionero.setSelectionBackground(Color.magenta);
jspstudent= new JScrollPane(tablacamionero);
jspstudent.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
lbltitulo= new JLabel(" Trabajadores ");
lbltitulo.setFont(new Font("Verdana", Font.BOLD, 22));
lblssn= new JLabel("Clave: ");
lblname= new JLabel("Nombre: ");
lbllastname= new JLabel("Apellidos: ");
txtssn= new JTextField(10);
txtname= new JTextField(10);
txtlastname= new JTextField(10);
btnsig= new JButton(">");
btnant= new JButton("<");
btnult= new JButton(">>");
btnsalir= new JButton("Salir al menu");
agrega = new JButton("Agregar");
elimina = new JButton("Elimina");
registro =new JPanel();
registro.add(lblssn);
registro.add(txtssn);
registro.add(lblname);
registro.add(txtname);
registro.add(lbllastname);
registro.add(txtlastname);
registro.add(btnant);
registro.add(btnsig);
registro.add(btnult);
registro.add(agrega);
registro.add(elimina);
registro.add(btnsalir);
splitpane.setBottomComponent(registro);
splitpane.setTopComponent(jspstudent);
cont.add(lbltitulo, BorderLayout.NORTH);
cont.add(splitpane);
}
private void activaListeners()
{
btnsig.addActionListener(this);
btnant.addActionListener(this);
btnult.addActionListener(this);
agrega.addActionListener(this);
elimina.addActionListener(this);
btnsalir.addActionListener(this);
tablacamionero.addKeyListener(this);
}
19
Clase salida
package proyecto;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableModel;
public class salida extends JFrame implements ActionListener,ListSelectionListener
{
Container cont;
JPanel panel1,panel2,panel3,panel4;
JScrollPane scroll,jspstudent;
JSplitPane splitpane;
JLabel cond,camion,peso,tipoCa;
ListSelectionModel selectionModel;
JTextField txcond,txtcamion,txtpeso,txttipo;
JLabel ima;
JComboBox estad,estad2;
JLabel sali,llega,destino,salida,espa;
JButton asig,volver,cerrar;
JTable tablacamionero;
camionero camionero;
Statement stmt;
Connection conexion;
int totalregistros,x1,y1;
ResultSet rs;
String[] studentcolumnnames = {"clave","nombre","apellidos","ciudad"};
String[] opciones={"Chihuahua","Durango","Zacatecas","Mexico","Jalisco","Coahuila","Sinaloa","Yucatan","Oaxaca",
"Chiapas","Sonora","Baja California"};
public salida()
{
super("Registro de salidas");
cont=this.getContentPane();
cont.setLayout(new GridLayout(2,2));
DBconnect();
obtienedatos();
panel_1();
panel_2();
panel_3();
panel_4();
agregar();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setSize(960,680);
}
public void panel_1()
{
panel1=new JPanel();
JLabel imagen=new JLabel(new ImageIcon(this.getClass().getResource("logo.png")) );
panel1.add(imagen);
}
20
public void panel_2()
{
panel2=new JPanel();
panel2.setLayout(new BorderLayout());
JPanel panelArr=new JPanel();
JPanel panelAba=new JPanel(new BorderLayout());
Box box1=Box.createVerticalBox();
Box box2=Box.createVerticalBox();
cond=new JLabel("Camionero asignado");
camion=new JLabel("trailer utilizado");
peso=new JLabel("El peso de la carga");
tipoCa=new JLabel("Tipo de carga");
box1.add(cond);
box1.add(camion);
box1.add(peso);
box1.add(tipoCa);
box1.add(new JLabel(" "));
txcond=new JTextField(15);
txtcamion=new JTextField(10);
txtpeso=new JTextField(6);
txttipo=new JTextField(6);
box2.add(txcond);
box2.add(txtcamion);
box2.add(txtpeso);
box2.add(txttipo);
sali=new JLabel("Fecha de salida");
llega=new JLabel("Fecha de llegada");
destino=new JLabel("Destino");
salida=new JLabel("Salida");
asig=new JButton("Asignar");
box1.add(sali);
box1.add(llega);
box1.add(salida);
box1.add(destino);
box1.add(asig);
estad=new JComboBox(opciones);
estad2=new JComboBox(opciones);
volver=new JButton("Volver al menu");
cerrar=new JButton("Cerrar Programa");
volver.addActionListener(this);
cerrar.addActionListener(this);
box2.add(getSpnrFecha());
box2.add(getSpnrFecha2());
box2.add(estad);
box2.add(estad2);
box2.add(volver);
panelArr.add(box1);
panelArr.add(box2);
JPanel aba=new JPanel(new FlowLayout());
aba.add(asig);
aba.add(volver);
aba.add(cerrar);
panelAba.add(aba,BorderLayout.SOUTH);
panel2.setBorder(BorderFactory.createLineBorder(Color.yellow));
panel2.add(panelArr,BorderLayout.CENTER);
panel2.add(panelAba,BorderLayout.SOUTH);
}
public void panel_3()
{
panel3=new JPanel();
splitpane= new JSplitPane(JSplitPane.VERTICAL_SPLIT);
tablacamionero= new JTable(camionero);
selectionModel = tablacamionero.getSelectionModel();
selectionModel.addListSelectionListener( this );
tablacamionero.setGridColor(Color.blue);
21
tablacamionero.setForeground(Color.darkGray);
tablacamionero.setBackground(Color.white);
tablacamionero.setSelectionBackground(Color.magenta);
splitpane.setTopComponent(jspstudent);
panel3.add(splitpane);
}
public void panel_4()
{
panel4=new JPanel();
ima = new JLabel(new ImageIcon(this.getClass().getResource("mapa_mexico.jpg")));
scroll=new JScrollPane(ima);
panel4.add(scroll,BorderLayout.CENTER);
}
public void agregar()
{
cont.add(panel1);
cont.add(panel2);
cont.add(panel3);
cont.add(scroll);
}
public void obtienedatos()
{
try{
stmt = conexion.createStatement();// para evitar consultas a la BD
rs = stmt.executeQuery("Select clave,nombre,apellidos,ciudad from camionero");
camionero= new camionero(studentcolumnnames);
camionero.rs=rs;
camionero.rsmd= rs.getMetaData();
camionero.tabla= "camionero";
totalregistros= camionero.getRowCount();
int columnas = camionero.getColumnCount();
}catch(SQLException ex){
System.err.println("Ocurrio excepcion"+ex);
}
}
public void DBconnect()
{
String url ="jdbc:mysql://localhost/camionero";
String user ="root";
String pass ="";
try{
conexion =(Connection) DriverManager.getConnection(url, user, pass);
}catch(SQLException ex){
System.err.println("Ocurri Excepcin" + ex);
}
}
private JSpinner getSpnrFecha() {
22
private JSpinner getSpnrFecha2() {
}
}
23
Impresiones de la ejecucin del proyecto
Figura 1.1
Aqu se muestra
nuestro logo de la
compaa
Figura 1.2
Aqu se muestra
otra ventana
donde se ingresa
nuestro usuario y
contrasea
Figura 1.3
Aqu se muestra el
men de nuestra
compaa
24
Figura 1.4
Aqu se muestra
otra ventana
donde se muestra
a los trabajadores
y donde se les
puede asignar su
tarea
Figura 1.5
Aqu se muestra
otra ventana
donde se estn
agregando los
datos del
camionero
Figura 1.6
Aqu se muestra
otra ventana
donde se
muestran datos
del camionero
25
Conclusin
Este proyecto simula un tipo de programa para una compaa fletera , como contratar camioneros y asignarles
salidas y hasta cuando tienen para transportar la carga que se pide transferir
26
Logros de aprendizaje
Me ayudo mucho para crear la conexin a una base de datos e insertar valores y poder darles liga con un programa
java fue mi logro de aprendizaje
27