GUIA DE TRABAJO
Asignatura : LABORATORIO - LENGUAJE DE PROGRAMACIÓN JAVA con NetBeans
Profesor : Mag. Lic. Jorge Rojas Páez
EJERCICIOS: Creación de formulario marca
1. Crear un proyecto en NetBeans con el nombre “TerceroMañana” con las siguientes
subcarpetas en el SRC:
C:\ TerceroMañana \Src
• Form
• Informes
• DER
• Datos
• prog
• librerias
2. Diseñar una base de datos en Dbdesigner 4 y guardar con el nombre “Stock” en la
carpeta <DER> El mismo deberá contener las siguientes tablas:
3. Crear la Base de Datos “bdatos” en MySQL Yog 5.0
• Abrir el Programa SQL yog
• En la caja “Conect to MySQL Host” seguir los siguientes pasos:
- Clic en el Botón “New”, y escribir la nueva conexión “Stock” y presionar
el botón Ok
- My SQL Host Addres: Localhost
- User name: root
- Password:
- Database: bdatos
4. Agregar las librerías:
5. Ejecutar el programa de conexión con la Base de datos
package prog;
import [Link].*;
import [Link];
import [Link];
public class Conectar {
public Connection coneccion = null;
public Statement st;
public ResultSet re;
public Conectar() {//constructor
try {
[Link]("[Link]").newInstance();
coneccion = (Connection) [Link]("jdbc:mysql://localhost/bdatos", "root", "");
[Link](null, "Se ha conectado a la base de datos....");
} catch (Exception e) {
[Link](null, "Error al realizar la conexion", "Error....",
JOptionPane.ERROR_MESSAGE);
[Link](0);
}
}
public static void main(String[] arg) {
new Conectar();
}
}
6. Crear un Formulario <Marca> : Guardar en la carpeta “Formularios”
6.1. Objetos:
• Cuadros de Textos:
o txtmar_codigo
o txtmar_descri
• Botones de Comando:
o bNuevo
o bModificar
o bGrabar
o bCancelar
o bEliminar
o bSalir
o bBuscar
6.2. Sub_programas: Private void () Métodos
• Método para Habilitar Botones:
private void h_botones() {
[Link](true);
[Link](false);
[Link](true);
[Link](true);
[Link](false);
[Link](true);
}
• Método para Deshabilitar Botones:
private void d_botones() {
[Link](false);
[Link](true);
[Link](false);
[Link](false);
[Link](true);
[Link](false);
}
• Método para limpiar Textos
public void limpiar_text() {
txtmar_codigo.setText("");
txtmar_descri.setText("");
}
• Método para habilitar cuadros de textos
public void h_text() {
txtmar_descri.setEnabled(true);
}
• Método para deshabilitar cuadros de textos
public void d_text() {
txtmar_descri.setEnabled(false);
}
• Método para generar código
public void gencod(){
try{
[Link] = (Statement) [Link]();
[Link] = (ResultSet) [Link]("select ifnull(max(mar_codigo),0)+1 as
xxx from marca");
[Link]();
txtmar_codigo.setText([Link]("xxx"));
}catch(Exception e){
[Link](null, [Link](), "Error de Conección",
JOptionPane.ERROR_MESSAGE);
}
}
• Método para grabar:
public void grabar() {
try {
String sql = "";
if ([Link]("agregar")) {
sql = "insert into marca(mar_descri)values ('" + txtmar_descri.getText() + "')";
}
if ([Link]("modificar")) {
sql = "update marca set mar_descri='" + txtmar_descri.getText() + "' where
mar_codigo ="+txtmar_codigo.getText();
}
[Link](null, "El registro ha sido grabado");
[Link] = (Statement) [Link]();
[Link](sql);
[Link]();
} catch (SQLException ex) {
[Link](null, [Link](), "Error de Conección",
JOptionPane.ERROR_MESSAGE);
}
}
• Declarar variables tipo públicas e instanciar el programa V_conectar
Códigos a colocar dentro del :public class Marca extends:
public String operacion = null;
V_conectar conn = new V_conectar();
public Marca() {
initComponents();
setLocationRelativeTo(null);
h_botones();
}
Programa Fuente de Objetos: Botones
• Botón Salir
private void bSalirActionPerformed([Link] evt) {
dispose();
}
• Botón Nuevo
private void bNuevoActionPerformed([Link] evt) {
operacion = "agregar";
h_text();
d_botones();
limpiar_text();
gencod();
txtmar_descri.requestFocus();
}
• Botón Grabar
private void bGrabarActionPerformed([Link] evt) {
grabar();
limpiar_text();
d_text();
h_botones();
}
• Botón Modificar
private void bModificarActionPerformed([Link] evt) {
operacion = "modificar";
h_text();
d_botones();
txtmar_descri.requestFocus();
}
• Botón Cancelar
private void bCancelarActionPerformed([Link] evt) {
limpiar_text();
d_text();
h_botones();
}
• Botón Buscar
private void bBuscarActionPerformed([Link] evt) {
new bMarca(null,true).setVisible(true);//llama al buscador
String vcod1 = [Link];
String vnom1 = [Link];
if ([Link]()){
return;
}else{
txtmar_codigo.setText(vcod1);
txtmar_descri.setText(vnom1);
}
}
• Botón Eliminar
private void bEliminarActionPerformed([Link] evt) {
try {
int mensaje = [Link](this, "Desea Borrar?" +
txtmar_descri.getText(), "Confirmar", JOptionPane.YES_NO_OPTION);
if (mensaje == JOptionPane.YES_OPTION) { //si quiere eliminar
[Link] = (Statement) [Link]();
[Link]("delete from marca where mar_codigo=" +
txtmar_codigo.getText());
[Link](null, "El registro ha sido borrado");
}
limpiar_text();
} catch (Exception e) {
[Link](null, [Link](), "Error de Conección",
JOptionPane.ERROR_MESSAGE);
}
}
Validación campos vacíos: Cuadros de Textos
• Objeto: txtmar_descri
• Evento: ActionPerformed
private void txtmar_descriActionPerformed([Link] evt) {
if (txtmar_descri.getText().equals("")){
[Link](null, "La Descripcion no puede estar vacia","Error",
JOptionPane.ERROR_MESSAGE);
}else{
[Link]();
}
}
7. Crear un Formulario de Diálogo <bMarca> : Guardar en la carpeta “Formularios”
7.1. Objetos:
• JDialogForm
• Cuadros de Textos:
o Name: txtnombre
o Name: txtcodigo
o Name: txtdescrip
• Grilla o Tabla:
o Name: t
o Table contents:
▪ Columns count = 2
▪ Rows count = 0
▪ Title:
• Código: Pref. Width = Default, Min. Width = Default
• Descripción: Pref. Width = 15, Min. Width = 150
7.2. Fuente:
• En la clase Principal: public class bMarca extends [Link]
private int band = 0;
private int ab = 0;
private int posreg = 0;
static String vcod = "";
static String vnom = "";
[Link] m;//crear tabla o cursor para la grilla
V_conectar conn = new V_conectar();
• En el constructor: public bMarca(){}
public bMarca([Link] parent, boolean modal) {
super(parent, modal);
initComponents();
setLocationRelativeTo(null);
m = ([Link])[Link](); //conecta el cursor con la grilla t
carga_grilla();
[Link]();
• Subprogramas: Métodos
• Método para cargar la grilla
public void carga_grilla(){
try{
[Link] = (Statement) [Link]();
[Link] = (ResultSet) [Link]("select * from marca order by
mar_codigo");
if ([Link]()){
do{
[Link](new
Object[]{[Link]("mar_codigo"),[Link]("mar_descri")});
}while([Link]());
}
}catch(SQLException ex){
[Link](null,"Error al cargar los datos","Error",
JOptionPane.INFORMATION_MESSAGE);
dispose();
}
• Método para filtrar la grilla
private void filtrar_grilla(){
[Link](0);//limpiar grilla
try{
[Link] = (Statement) [Link]();
[Link] = (ResultSet) [Link]("select * from marca where mar_descri
like '%"+[Link]()+"%' order by mar_codigo");
if ([Link]()){
do{
[Link](new
Object[]{[Link]("mar_codigo"),[Link]("mar_descri")});
}while([Link]());
}
}catch(SQLException ex){
[Link](null,"Error al cargar los datos","Error",
JOptionPane.INFORMATION_MESSAGE);
dispose();
}
}
• Método para elegir un registro de la grilla:
private void eligio(){
posreg = [Link]();
[Link]([Link]([Link](posreg, 0)));
[Link]([Link]([Link](posreg, 1)));
}
• Eventos de Objetos:
o Txtnombre:
private void txtnombreKeyPressed([Link] evt) {
filtrar_grilla();
}
private void txtnombreKeyReleased([Link] evt) {
filtrar_grilla();
if([Link]()==KeyEvent.VK_ENTER || [Link]()==KeyEvent.VK_TAB){
[Link]().setSelectionInterval(0, 0);//se posiciona en la fila que coincida y
le envia enter en la tabla
[Link]();
}
}
o Tabla o Grilla: t
private void tFocusGained([Link] evt) {
eligio();//llama al método eligio para elegir el registro
}
private void tFocusLost([Link] evt) {
eligio();
}
private void tKeyPressed([Link] evt) {
if([Link]()== KeyEvent.VK_ENTER){
vcod = [Link]();
vnom = [Link]();
dispose();
}
}
private void tMouseClicked([Link] evt) {
eligio();
}