Claro el dispose lo que hace es cerrar la ventana no? y entonces la reabro, voy a probar ahora te digo.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúdbResulSet = dbStatement.executeQuery("SELECT * from disfruta where usuarioDni = '" + dni2 + "'");
//recorremos la consulta
while(dbResulSet.next()){
//obtengo el identificador
String dni = dbResulSet.getString(1);
System.out.println(dni);
//obtengo el descripcion
int codigo = dbResulSet.getInt(2);
try {
myData.add(new Disfruta(dni, codigo));
} catch (Exception e) {
e.printStackTrace();
}
}
jButtonEliminarUsuario.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
ModeloJTableUsuario modelo = getModeloJTableUsuario();
int index = getJTableUsuario().getSelectedRow();
// Si se selecciona un elemento en la lista
if ( index >= 0 ) {
modelo.eliminarUsuario(index);
}
}
});
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Subir Archivo</title>
</head>
<body>
<h1>Subir archivos mediante php</h1>
<form action="subirarchivo.php" method="post" enctype="multipart/form-data">
Inserte aqui su archivo:<br />
<input type="file" name="archivo">
<input type="submit" value="enviar">
</form>
</body>
</html>
package vista;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import controlador.ModeloJTableUsuario;
import modelo.Usuario;
/**
*
* @author maquinavirtual
*
*/
public class UsuarioJTable extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel jPanelEntradaDatos = null;
private JButton jButtonInsertarUsuario = null;
private JButton jButtonEliminarUsuario = null;
private JPanel jPanelJListUsuario = null;
private JTable jTableUsuario = null;
// panel inferior con la informacion de la Usuario
private PanelInfoUsuario panelInfoUsuario = null ;
// ventanas llamadas ( una sola ventana para todas las llamadas )
private VentanaInsertarUsuario ventanaInsertarUsuario = null ;
// variable que almacena el modelo del JTableUsuario ( modelo para almacenar Usuarioes )
private ModeloJTableUsuario modeloJTableUsuario = null ;
/**
* @return the modeloJTableUsuario
*/
public ModeloJTableUsuario getModeloJTableUsuario() {
if ( modeloJTableUsuario == null ){
modeloJTableUsuario = new ModeloJTableUsuario();
}
return modeloJTableUsuario;
}
/**
* This is the default constructor
*/
public UsuarioJTable() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(470, 370);
this.setContentPane(getJContentPane());
this.setTitle("JTable con Usuario");
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent arg0) {
Component frame = null;
int n = JOptionPane.showConfirmDialog(
frame,
"¿Desea Guardar los datos antes de salir?",
"Responde antes de salir",
JOptionPane.YES_NO_OPTION);
if(n == 0){
ModeloJTableUsuario modelo = getModeloJTableUsuario();
modelo.guardarDatos();
}
dispose();
}
@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
}
);
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJPanelEntradaDatos(), BorderLayout.NORTH);
jContentPane.add(getJPanelJListUsuario(), BorderLayout.CENTER);
jContentPane.add(getPanelInfoUsuario(), BorderLayout.SOUTH);
}
return jContentPane;
}
/**
* This method initializes jPanelEntradaDatos
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelEntradaDatos() {
if (jPanelEntradaDatos == null) {
FlowLayout flowLayout = new FlowLayout();
flowLayout.setHgap(10);
flowLayout.setVgap(10);
flowLayout.setAlignment(FlowLayout.LEFT);
jPanelEntradaDatos = new JPanel();
jPanelEntradaDatos.setLayout(flowLayout);
jPanelEntradaDatos.add(getJButtonInsertarUsuario(), null);
jPanelEntradaDatos.add(getJButtonEliminarUsuario(), null);
}
return jPanelEntradaDatos;
}
/**
* This method initializes jButtonInsertarUsuario
*
* @return javax.swing.JButton
*/
private JButton getJButtonInsertarUsuario() {
if (jButtonInsertarUsuario == null) {
jButtonInsertarUsuario = new JButton();
jButtonInsertarUsuario.setText(" Insertar Usuario ");
jButtonInsertarUsuario.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
// variable con el panel de informacion de Usuario
PanelInfoUsuario panelInfoUsuario = getVentanaInsertarUsuario().getPanelDatosUsuario();
// Peticion de foco en el campo de nombre
panelInfoUsuario.getjTextFieldDni().requestFocus();
// si se hace click en aceptar Usuario
if ( VentanaInsertarUsuario.C_ACEPTAR_USUARIO == getVentanaInsertarUsuario().mostrarVentanaModal() ){
//System.out.println("Acepta Usuario");
String dni = panelInfoUsuario.getjTextFieldDni().getText();
String nombre = panelInfoUsuario.getjTextFieldNombre().getText();
String telefono = panelInfoUsuario.getjTextFieldTelefono().getText();
// creo un Usuario
Usuario p;
try {
p = new Usuario(dni, nombre, telefono);
ModeloJTableUsuario modelo = getModeloJTableUsuario();
// agrego la Usuario al modelo
modelo.insertaUsuario(p);
// Mostramos la informacion de la Usuario en el panel inferior
getPanelInfoUsuario().mostrarDatosUsuario(p);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
// limpiamos los campos
panelInfoUsuario.limpiarCampos();
}
});
}
return jButtonInsertarUsuario;
}
/**
* This method initializes jButtonEliminarUsuario
*
* @return javax.swing.JButton
*/
private JButton getJButtonEliminarUsuario() {
if (jButtonEliminarUsuario == null) {
jButtonEliminarUsuario = new JButton();
jButtonEliminarUsuario.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// obtenemos el modelo
ModeloJTableUsuario modelo = getModeloJTableUsuario();
int index = getJTableUsuario().getSelectedRow();
// Si se selecciona un elemento en la lista
if ( index >= 0 ) {
modelo.eliminarUsuario(index);
getPanelInfoUsuario().limpiarCampos();
}
}
});
jButtonEliminarUsuario.setText(" Eliminar Usuario ");
}
return jButtonEliminarUsuario;
}
/**
* This method initializes jPanelJListUsuario
*
* @return javax.swing.JPanel
*/
private JPanel getJPanelJListUsuario() {
if (jPanelJListUsuario == null) {
jPanelJListUsuario = new JPanel();
jPanelJListUsuario.setLayout(new BorderLayout());
jPanelJListUsuario.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
//jPanelJListUsuario.add(getJTableUsuario(), BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane(getJTableUsuario());;
jPanelJListUsuario.add(scrollPane,BorderLayout.CENTER);
}
return jPanelJListUsuario;
}
/**
* This method initializes jListUsuario
*
* @return javax.swing.JList
*/
private JTable getJTableUsuario() {
if (jTableUsuario == null) {
// le asigno un modelo al constructor
jTableUsuario= new JTable();
//Seleccion de un solo elemento
jTableUsuario.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//Escuchador de tecla
jTableUsuario.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
JTable jtable = (JTable) e.getSource();
//Coge la tecla pulsada y comprueba si es una flecha
int teclaPulsada = e.getKeyCode();
if(teclaPulsada == KeyEvent.VK_UP || teclaPulsada == KeyEvent.VK_DOWN || teclaPulsada == KeyEvent.VK_TAB){
//int fila = jtable.getSelectedRow();
// Usuario seleccionada del JList
Usuario p = (Usuario)modeloJTableUsuario.devolverUsuario(jtable.getSelectedRow());
//Mostrar datos de la Usuario
getPanelInfoUsuario().mostrarDatosUsuario(p);
}
}
});
jTableUsuario.setModel( getModeloJTableUsuario() ); // asigno el modelo
jTableUsuario.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
JTable jtable = (JTable) e.getSource();
int numeroClicks = e.getClickCount();
// Usuario seleccionada del JList
Usuario p = (Usuario)modeloJTableUsuario.devolverUsuario(jtable.getSelectedRow());
// Si hay algo seleccionado
if ( ( jtable.getSelectedRow() >= 0 ) && ( numeroClicks == 2 ) ){
// variable con el panel de informacion de Usuario
PanelInfoUsuario panelInfoUsuario = getVentanaInsertarUsuario().getPanelDatosUsuario();
// Usuario seleccionada del JList
panelInfoUsuario.mostrarDatosUsuario(p);
// Peticion de foco en el campo de nombre
panelInfoUsuario.getjTextFieldDni().requestFocus();
// Mostrar el cuadro de dialogo con los datos de la Usuario
// si se hace click en aceptar Usuario
if ( VentanaInsertarUsuario.C_ACEPTAR_USUARIO == getVentanaInsertarUsuario().mostrarVentanaModal() ){
// capturo los nuevos valores
String dni = panelInfoUsuario.getjTextFieldDni().getText();
String nombre = panelInfoUsuario.getjTextFieldNombre().getText();
String telefono = panelInfoUsuario.getjTextFieldTelefono().getText();
try {
// asigno los nuevos valores para la Usuario
p.setDni(dni);
p.setNombre(nombre);
p.setTelefono(telefono);
// mostramos el panel inferior con los nuevos datos de la Usuario
getPanelInfoUsuario().mostrarDatosUsuario(p);
getModeloJTableUsuario().fireTableDataChanged();
} catch (Exception e1) {
//
e1.printStackTrace();
}
} // de if
// limpiamos los campos
panelInfoUsuario.limpiarCampos();
}
//Muestra en el panel inferior el valor seleccionado en el jTable
if( jtable.getSelectedRow() >= 0){
getPanelInfoUsuario().mostrarDatosUsuario(p);
}
}
});
}
return jTableUsuario;
}
// Metodo que devuelve un panel con la informacion de la Usuario
private PanelInfoUsuario getPanelInfoUsuario(){
if ( panelInfoUsuario == null ){
panelInfoUsuario = new PanelInfoUsuario();
}
return panelInfoUsuario;
}
// obtengo la ventana de insertar Usuario
private VentanaInsertarUsuario getVentanaInsertarUsuario(){
if ( ventanaInsertarUsuario == null ){
ventanaInsertarUsuario = new VentanaInsertarUsuario();
}
ventanaInsertarUsuario.setLocationRelativeTo(this);
return ventanaInsertarUsuario;
}
} // @jve:decl-index=0:visual-constraint="10,10"
package controlador;
import java.sql.Connection;
/**
*
* @author maquinavirtual
*
*/
public class ModeloJTableUsuario extends AbstractTableModel {
/**
*
*/
private static final long serialVersionUID = 1L;
//Coleccion que almacena los datos del modelo
private ArrayList<Usuario> myData = null;
private String[] nombreColumnas = {"Dni" , "Nombre", "Telefono"};
/**
* Constructor vacÃo
* */
public ModeloJTableUsuario() {
myData = cargarDatos();
}
private ArrayList<Usuario> cargarDatos() {
ArrayList<Usuario> temporal = new ArrayList<Usuario>();
//Creación del objeto que conectará a la BD
ConnectionJDBC cj = new ConnectionJDBC();
ConnectionJDBC cjMySqlJDBC = new ConnectionJDBC();
Statement dbStatement = null;
ResultSet dbResulSet = null;
try {
Connection dbConnectMysql = cjMySqlJDBC.getConnection("jdbc:mysql://127.0.0.1/entorno","user","user");
//creo un objeto Statement
dbStatement = dbConnectMysql.createStatement();
//creo un objeto ResulSet para realizar una consulta a la base de datos
dbResulSet = dbStatement.executeQuery("SELECT * from usuario");
//recorremos la consulta
while(dbResulSet.next()){
//obtengo el identificador
String dni = dbResulSet.getString(1);
//obtengo el descripcion
String nombre = dbResulSet.getString(2);
//obtengo el telefono
String telefono = dbResulSet.getString(3);
try {
temporal.add(new Usuario(dni, nombre, telefono));
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("conexión creada");
cj.closeConnection(dbConnectMysql, dbStatement);
System.out.println("conexión cerrada");
} catch (SQLException e) {
e.printStackTrace();
}
return temporal;
}
/**
* Método que inserta un perfil(por si no se nota...)
* */
public void insertaUsuario(Usuario p){
if(p != null){
myData.add(p); //Inserto el perfil en el modelo
//Notifica a la tabla que han habido cambios
this.fireTableDataChanged();
}
}
public Usuario devolverUsuario (int fila){
if(fila >= 0 && fila < myData.size())
return myData.get(fila);
return null;
}
@Override
public String getColumnName(int column) {
return nombreColumnas[column];
}
/* (non-Javadoc)
* @see javax.swing.table.TableModel#getRowCount()
*/
@Override
public int getRowCount() {
return myData.size();
}
/* (non-Javadoc)
* @see javax.swing.table.TableModel#getColumnCount()
*/
@Override
public int getColumnCount() {
return 3;
}
/**
* Metodo que elimina un perfil
* */
public void eliminarUsuario(Usuario p){
if(p != null){
if(myData.contains(p)){
myData.remove(p);
//Notifica a la tabla que han habido cambios
this.fireTableDataChanged();
}
}
}
/**
* Metodo que elimina un perfil pasando un indice
* */
public void eliminarUsuario(int index){
if(index >= 0 && index < myData.size()){
myData.remove(index);
//Notifica a la tabla que han habido cambios
this.fireTableDataChanged();
}
}
/* (non-Javadoc)
* @see javax.swing.table.TableModel#getValueAt(int, int)
*/
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return myData.get(rowIndex).getDni();
case 1:
return myData.get(rowIndex).getNombre();
case 2:
return myData.get(rowIndex).getTelefono();
default:
return null;
}
}
public void guardarDatos(){
//Creación del objeto que conectará a la BD
ConnectionJDBC cj = new ConnectionJDBC();
ConnectionJDBC cjMySqlJDBC = new ConnectionJDBC();
Statement dbStatement = null;
try {
Connection dbConnectMysql = cjMySqlJDBC.getConnection("jdbc:mysql://127.0.0.1/entorno","user","user");
//creo un objeto Statement
dbStatement = dbConnectMysql.createStatement();
//creo un objeto ResulSet para realizar una consulta a la base de datos
dbStatement.executeUpdate("delete from usuario");
Iterator<Usuario> it = myData.iterator();
//recorremos la consulta
while(it.hasNext()){
Usuario elem = it.next();
//obtengo el identificador
String dni = elem.getDni();
//obtengo el nombre
String nombre = elem.getNombre();
//obtengo el telefono
String telefono = elem.getTelefono();
//System.out.println(id + "," + descripcion);
dbStatement.executeUpdate("INSERT INTO usuario VALUES ( '" + dni + "', '" + nombre + "', '" + telefono + "')");
try {
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("conexión creada");
cj.closeConnection(dbConnectMysql, dbStatement);
System.out.println("conexión cerrada");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Cita de: drvy | BSM en 19 Febrero 2012, 13:19 PM
Utiliza un upload...das la posibilidad de que los archivos se suban a una carpeta, luego guardas la ruta en la base de datos junto a quien lo subió y algunas cosillas mas como comentarios si quieres.
Upload de Archivos con PHP
-> http://www.desarrolloweb.com/articulos/1307.php
Saludos