import java - Itsp

Anuncio
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;
public class claseBD extends JFrame {
private JPanel contentPane;
private JTextField txtcoddepto;
private JTextField txtnombredepto;
private JList lstDepartamentos;
private Connection con;
private Statement stmt;
private DefaultListModel modeloLista=new DefaultListModel();
String driver = "org.postgresql.Driver";
String connectString = "jdbc:postgresql://localhost:5432/baseClientes";
String user = "postgres";
String password = "postgres";
//Método conectar ****************
private void conectar() throws ClassNotFoundException
{
try {
Class.forName(driver);
con = DriverManager.getConnection(connectString, user , password);
stmt = con.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//Método cargarLista
private void cargarLista() throws ClassNotFoundException
{
/*HAGO LA CONSULTA DE TODOS LOS DEPARTAMENTOS Y LOS MUESTRO EN LA LISTA*/
try
{
conectar();
ResultSet rs = stmt.executeQuery("SELECT * FROM departamentos order by
nombredepto");
/*RECORRO EL RESULTSET AGREGANDO LOS DATOS QUE QUIERO MOSTRAR EN EL
JLIST*/
while(rs.next())
{
modeloLista.addElement(rs.getString("nombredepto"));//nombredepto es el campo de la tabla
que quiero mostrar
}
rs.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//Método agregarDepartamento
private void agregarDepartamento(String nombredepto) throws SQLException,
ClassNotFoundException
{
try
{
conectar();
stmt.execute("Insert into Departamentos (coddepto, nombredepto)
values(DEFAULT,'" + nombredepto + "')");
}
catch(SQLException e) {
e.printStackTrace();
}
}
//Método eliminarDepartamento
private void eliminarDepartamento(String nombredepto) throws SQLException,
ClassNotFoundException
{
try
{
conectar();
stmt.execute("Delete from departamentos where nombreDepto='" +
nombredepto + "'");
}
catch(SQLException e) {
e.printStackTrace();
}
}
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
claseBD frame = new claseBD();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
* @throws ClassNotFoundException
*/
public claseBD() throws ClassNotFoundException {
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
lstDepartamentos = new JList(modeloLista);
lstDepartamentos.setBounds(32, 36, 136, 167);
contentPane.add(lstDepartamentos);
txtcoddepto = new JTextField();
txtcoddepto.setEditable(false);
txtcoddepto.setBounds(237, 24, 86, 20);
contentPane.add(txtcoddepto);
txtcoddepto.setColumns(10);
JLabel lblNombreHotel = new JLabel("C\u00F3digo");
lblNombreHotel.setBounds(238, 11, 74, 14);
contentPane.add(lblNombreHotel);
JLabel lblDireccinHotel = new JLabel("Nombre Departamento");
lblDireccinHotel.setBounds(236, 55, 126, 14);
contentPane.add(lblDireccinHotel);
txtnombredepto = new JTextField();
txtnombredepto.setBounds(237, 76, 107, 20);
contentPane.add(txtnombredepto);
txtnombredepto.setColumns(10);
JLabel lblDepartamentos = new JLabel("Departamentos");
lblDepartamentos.setBounds(32, 11, 99, 14);
contentPane.add(lblDepartamentos);
JButton btnAgregar = new JButton("Agregar");
btnAgregar.setBounds(238, 123, 89, 23);
contentPane.add(btnAgregar);
JButton btnQuitar = new JButton("Quitar");
btnQuitar.setBounds(237, 165, 89, 23);
contentPane.add(btnQuitar);
//****************** COMIENZO DE LA PROGRAMACIÓN*****************
//************* Carga la lista de departamentos
cargarLista();
//************* Botón AGREGAR un nuevo departamento a la tabla
btnAgregar.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent arg0) {
try{
//Primero controlo que la caja de texto no esté
vacía
if(txtnombredepto.getText().length()==0)
{
JOptionPane.showMessageDialog(null,"Complete los datos obligatorios");
}
else
{
//Si la caja de texto no está vacía, llamo
al metodo agregarDepartamento
agregarDepartamento(txtnombredepto.getText());
//limpio la lista
modeloLista.clear();
//vuelvo a cargar la lista
cargarLista();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
});
//BOTÓN PARA ELIMINAR EL DEPARTAMENTO SELECCIONADO
btnQuitar.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
//Primero me fijo si hay algún departamento
seleccionado
if(lstDepartamentos.getSelectedIndex()==-1)
JOptionPane.showMessageDialog(null,
"Seleccione el departamento a eliminar");
else
try {
//Si hay un departamento
seleccionado, llamo al método correspondiente
eliminarDepartamento(modeloLista.elementAt(lstDepartamentos.getSelectedIndex()).
toString());
modeloLista.clear();
cargarLista();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
});
}//cierra implementación
}//cierra clase
Descargar