Está en la página 1de 13

Instituto Tecnológico de Tizimín 1

Taller de bases de datos

INTERFACES GRÁFICAS DE USUARIO CON JAVA


PRACTICA 1. CREACIÓN DE UNA VENTANA SENCILLA

import javax.swing.*;

public class Proyecto1 {


public static void main(String[] args) {
Ventana v = new Ventana("I.T.Tizimín");
// setDefaultCloseOperation establece la operación que sucederá por defecto cuando un usuario cierra la ventana
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
v.show();//Método para mostrar la ventana
}
}

class Ventana extends JFrame{


Ventana(String titulo){//Constructor
setTitle(titulo); //Método para fijar una cadena en la barra de título
setSize(200, 300);//Método para fijar el tamaño del formulario, 200 de ancho y 300 de alto
}
}

Nota:
Establecerla operación que ocurre cuando un usuario pulsa sobre el botón “cerrar” en el Frame. Las posibles opciones son:
 DO_NOTHING_ON_CLOSE
 HIDE_ON_CLOSE
 DISPOSE_ON_CLOSE
 EXIT_ON_CLOSE

Métodos y constructores de la clase JFrame


CONSTRUCTORES
JFrame() Constructor que crea un marco sin título.
JFrame(String título) Constructor que crea un marco con el título indicado.
MÉTODOS
setTitle(String título) Establece el título de la ventana.
setSize(int alto, int ancho) Establece el ancho y el alto de la ventana.
Instituto Tecnológico de Tizimín 2
Taller de bases de datos

setLocation(int x, int y) Sitúa el marco en la posición x, y.


setBounds(int x,int y,int ancho,int alto) Sitúa en la posición x, y con un ancho y un alto determinado.
setResizable(boolean opc) Establece si el marco se puede redimensionar. Por omisión es true.
show() Muestra el marco y sus componentes.
hide() Esconde el marco y sus componentes.
pack() Muestra la ventana y coloca sus componentes. Necesario cuando se realiza una
redimensión de la ventana o se modifican sus componentes.
setVisible(boolean opc) Establece si el marco es visible. setVisible(true) es equivalente a show().

PRACTICA 2. AGREGANDO UN BOTÓN A UN FRAME

import javax.swing.*;
import java.awt.event.*;//Importar el paquete para manejador de eventos desencadenados por los controles (Jbutton, JTextArea, etc.)

public class Proyecto2 {


public static void main(String[] args) {
Ventana v = new Ventana("I.T.Tizimín");
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
v.show();
}
}

class Ventana extends JFrame implements ActionListener{//ActionListener es una interfaz para detectar y manejar eventos en la aplicación
JButton boton1, boton2;

Ventana(String titulo){
setTitle(titulo);
setSize(300, 300);
setLayout(null); //Cancelamos la utilización de Layouts

boton1 = new JButton("Finalizar");


boton1.setBounds(100,100,100,30);//Fijamos un Botón en la posición 100,100 y con tamaño 100,30
add(boton1); //Agregar (add) el botón a la ventana
boton1.addActionListener(this);//método addActionListener permite darle funcionalidad al botón llamado “botón1”
}

public void actionPerformed(ActionEvent e) {//actionPerformed es un método perteneciente al ActionListener


Instituto Tecnológico de Tizimín 3
Taller de bases de datos

//Los ActionEvent invocan el método actionPerformed(ActionEvent e) que realiza las acciones programadas ante ese evento.
if (e.getSource()==boton1) {//Se pregunta si la acción corresponde al control boton1
System.exit(0);
}
}
} //Fin de la clase Ventana

PRACTICA 3. REALIZANDO OPERACIONES ARITMÉTICAS

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

public class Proyecto3 {


public static void main(String[] args) {
Ventana v = new Ventana("I.T.Tizimín");
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
v.show();
}
}

class Ventana extends JFrame implements ActionListener{


public JButton bsum, bres, bdiv, bmul;
public JLabel l1, l2;
public JTextField t1, t2, t3;

Ventana(String titulo){
setTitle(titulo);
setSize(400, 250);
setLayout(null);

l1 = new JLabel("Dar número 1");


l1.setBounds(10,10,100,30);
add(l1);

l2 = new JLabel("Dar número 2");


l2.setBounds(10,40,100,30);
add(l2);
Instituto Tecnológico de Tizimín 4
Taller de bases de datos

t1 = new JTextField();
t1.setBounds(100,10,100,25);
add(t1);

t2 = new JTextField();
t2.setBounds(100,40,100,25);
add(t2);

bsum = new JButton("+");


bsum.setBounds(50,100,50,30);
add(bsum);
bsum.addActionListener(this);

bres = new JButton("-");


bres.setBounds(120,100,50,30);
add(bres);
bres.addActionListener(this);

bmul = new JButton("*");


bmul.setBounds(190,100,50,30);
add(bmul);
bmul.addActionListener(this);

bdiv = new JButton("/");


bdiv.setBounds(260,100,50,30);
add(bdiv);
bdiv.addActionListener(this);

t3 = new JTextField();//t3 para imprimir el resultado


t3.setBounds(100,150,100,30);
add(t3);
}

public void actionPerformed(ActionEvent e){


Operaciones op = new Operaciones();
if (e.getSource()==bsum) {
Instituto Tecnológico de Tizimín 5
Taller de bases de datos

int resultado = op.suma(t1.getText(),t2.getText());//Llamar al método suma pasando el contenido de las cajas de texto
//El método getText sirve para obtener el texto escrito en la caja de texto
t3.setText(Integer.toString(resultado));
}

if (e.getSource()==bres) {
int resultado = op.resta(t1.getText(),t2.getText());
t3.setText(Integer.toString(resultado));
}
}
} //Fin de la clase Ventana

class Operaciones{
int suma(String t1, String t2){
int n1 = Integer.parseInt(t1);
int n2 = Integer.parseInt(t2);
return (n1 + n2);
}

int resta(String t1, String t2){


int n1 = Integer.parseInt(t1);
int n2 = Integer.parseInt(t2);
return (n1 - n2);
}
}

Nota: Para conocer más acerca de los manejadores de eventos visitar:


http://www.dit.upm.es/~santiago/docencia/apuntes/applets/event11.htm

PRACTICA 4. EVENTOS DEL TECLADO

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

public class Proyecto {


public static void main(String[] args) {
Instituto Tecnológico de Tizimín 6
Taller de bases de datos

Ventana v = new Ventana("I.T.Tizimín");


v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
v.show();
}
}

class Ventana extends JFrame implements KeyListener{


public JLabel l1;
public JTextField t1, t2;

Ventana(String titulo){
setTitle(titulo);
setSize(300, 200);
setLayout(null);

t1 = new JTextField();
t1.setBounds(50,10,100,25);
add(t1);
t1.addKeyListener(this);

l1 = new JLabel();
l1.setBounds(50,30,100,25);
add(l1);;
} //Fin del constructor

public void keyTyped(KeyEvent entrada) {


char tecla = entrada.getKeyChar();
l1.setText("Tu presionaste " + tecla);
}

public void keyPressed(KeyEvent txt){


// no hacer nada
}

public void keyReleased(KeyEvent txt){


//no hacer nada
}
Instituto Tecnológico de Tizimín 7
Taller de bases de datos

Nota: Para conocer más acerca de la API para el diseño de interfaces visitar:
http://docs.oracle.com/javase/tutorial/uiswing/components/index.html

PRACTICA 5. BASES DE DATOS CON JAVA Y MYSQL

BASES DE DATOS EN JAVA + MYSQL + NETBEANS


Paso 1. DESCARGAR EL DRIVER ODBC

a. Descargar el driver ODBC para Java desde la dirección: http://dev.mysql.com/downloads/connector/j/

b. Después de descargar el driver ODBC, se descomprime en algún sitio del disco duro y se busca al archivo mysql-connector-java-5.1.30-
bin.jar que viene dentro. En ese jar está la clase Driver que es de interés para este proyecto.
c. Copiar el conector descargado (mysql-connector-java-5.1.30-bin.jar) a la carpeta EXT dentro de JDK, es decir, en la ruta: C:\Program
Files\Java\jdk1.7.0_51\jre\lib\ext (Lo que se encuentra en negritas puede variar dependiendo de la versión descargada)

Paso 2. CONFIGURAR NETBEANS PARA TRABAJAR CON MYSQL

a. Una vez que hayas abierto el NetBeans localiza la sección “Services” que se localiza en el lado izquierdo de la pantalla, dar click con el botón
derecho sobre la carpeta “drivers” como se muestra a continuación:
Instituto Tecnológico de Tizimín 8
Taller de bases de datos

b. Al dar clic a la opción “New Driver” se abrirá la siguiente ventana. Dar clic al botón “Add” (Agregar) y seccionar el driver ODBC que fue
copia en la carpeta EXT dentro de JDK.

c. Si todo se realizó correctamente se podrá ver un nuevo elemento dentro de la carpeta Driver con las especificaciones de la conexión actual.
Instituto Tecnológico de Tizimín 9
Taller de bases de datos

Paso 3. CREAR BASE DE DATOS “ESCUELA” Y TABLA “ALUMNOS” DESDE MYSQL

CREATE DATABASE IF NOT EXISTS ESCUELA;


CREATE TABLE IF NOT EXISTS ALUMNOS (MATRICULA VARCHAR(3), NOMBRE VARCHAR(40), EDAD TINYINT);

Paso 4. DISEÑAR LA SIGUIENTE INTERFAZ EN NETBEANS


Instituto Tecnológico de Tizimín 10
Taller de bases de datos

Paso 5. REALIZAR DIVERSAS OPERACIONES A LA BD

Archivo: Conexion.java
public interface Conexion {
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost/escuela";
String login="root";
String password="123";
}

Archivo: CreaConexion.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class CreaConexion implements Conexion{


public Connection conexion;

public void crearConexion(){


try{
Class.forName(driver).newInstance();
conexion = DriverManager.getConnection(url,login,password); //Crea una conexión a la BD
}
catch (Exception e){
System.out.println("Error al tratar de abrir la base de Datos");
}
}//Fin del método CreaConexion

public void cerrarConexion() {


try {
conexion.close(); //Cierra la conexión con la BD
}
catch (SQLException e) {
System.out.println("Error al cerrar conexión");
}
}//Fin del Método cerrarConexion
}
Instituto Tecnológico de Tizimín 11
Taller de bases de datos

Archivo:Alumnos.java
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public class Alumnos extends CreaConexion{


Statement sentencia;

public void insertar(String m, String n, int ed){


crearConexion();
try {
sentencia = conexion.createStatement();
String cadena = "INSERT INTO alumnos VALUES ('" + m + "','" + n + "'," + ed + ")";
sentencia.executeUpdate(cadena);
}
catch(SQLException e){
System.out.println("Error "+e);
}
cerrarConexion();
}

public void eliminar(String m){


crearConexion();
try {
sentencia = conexion.createStatement();
String cadena = "DELETE FROM alumnos WHERE matricula='" + m + "'";
sentencia.executeUpdate(cadena);
}
catch(SQLException e){
System.out.println("Error "+e);
}
cerrarConexion();
}//Fin del Método eliminarDatos

public ArrayList buscar(String mat){


Instituto Tecnológico de Tizimín 12
Taller de bases de datos

PreparedStatement ps;
ResultSet rs;
ArrayList<String> v = new ArrayList<>();

crearConexion();

try {
String sql = "Select * from alumnos where matricula='" +mat +"'";
ps = conexion.prepareStatement(sql);
rs = ps.executeQuery();

if (rs.next()){
v.add(rs.getString(2));
String edad = Integer.toString(rs.getInt(3));
v.add(edad);
cerrarConexion();
return v;
}
}
catch(SQLException e){
System.out.println("Error "+e);
}
cerrarConexion();
return null;
}//Fin del Método eliminarDatos
} //Fin de la clase Alumnos

Archivo: Este es el archivo que crea la interfaz gráfica

//Creamos un objeto de tipo alumnos para poder invocar a sus métodos. La siguiente línea se define dentro de la clase pero fuera de
cualquier //método
Alumnos a = new Alumnos();

//El siguiente código va dentro del botón que sirve para insertar registros
String matricula = jTextField1.getText();
String nombre = jTextField2.getText();
int edad = Integer.parseInt(jTextField3.getText());
Instituto Tecnológico de Tizimín 13
Taller de bases de datos

a.insertar(matricula, nombre, edad);

//El siguiente código va dentro del botón para eliminar registros


String matricula = jTextField1.getText();
a.eliminar(matricula);

//El siguiente código va dentro del botón para buscar registros


String matricula = jTextField1.getText();
ArrayList<String> v;
v = a.buscar(matricula);
if (v == null){
System.out.println("Este alumno no se encuentra en la BD");
}
else {
jTextField2.setText(v.get(0));
jTextField3.setText(v.get(1));
}

También podría gustarte