Menú

Mostrar Mensajes

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ú

Mensajes - jperezmonge

#11
Java / Re: Frame y JTable. Como actualizarlo
22 Febrero 2012, 19:07 PM
Claro el dispose lo que hace es cerrar la ventana no? y entonces la reabro, voy a probar ahora te digo.
#12
Java / Frame y JTable. Como actualizarlo
22 Febrero 2012, 16:42 PM
Necesito que alguien me eche una mano. Resulta que tengo un ventana con un JTable de usuarios, al seleccionar un usuario le doy a un botón "asignar Perfil" y se me abre un frame con los Perfiles que le puede dar a ese usuario descartando los que ya tiene, el problema es que cuando selecciono un Perfil y le doy a aceptar consigo hacer la consulta a la base de datos pero no consigo que la ventana se actualice, alguien que me pueda ayudar?
#13
De esta forma no debería de lanzarte excepción ni estar pendiente de si en la siguiente vuelta esta apuntando a null o no.

prueba a recorrer la consulta de este modo.

Código (java) [Seleccionar]
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();
}

}
#14
Ahhmmm, yo es que en el modelo del jTable cargo los datos de la base de datos a una colección y desde hay trabajo, lo siento te he ayudado hasta donde yo llego, si no te sirve de nada, lo siento.
#15
Asi lo hago yo, a ver si te puede dar un enfoque distinto

Código (java) [Seleccionar]
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);
}
}
});
#16
Desarrollo Web / Diseño a un formulario
21 Febrero 2012, 17:45 PM
Hola a todos, haber si me podeis echar una manita es que tengo este codigo implementado y uso navegador web chrome y se ve super feo. Haber si alguien sabe adecentarlo un poquito.

Dejo el código:

<!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>
#17
Java / Re: JTableUsuario y JTableDisfruta
21 Febrero 2012, 14:13 PM
Gracias de todas formas sapito, ya lo solucione, resulta que pare hacer pruebas al método le puse que devolviera un arrayList y trabajaba dentro del método con un arraylist temporal o anónimo para probar el código y se me olvido después de que funcionara cambiarlo por el arraylist verdadero del modelo de datos.

Gracias de todas formas, muy amable.
#18
Java / Re: jtable manejo
19 Febrero 2012, 16:13 PM
Aquí os dejo un ejemplo, a ver si con este código os soluciono algo. Son códigos muy grandes, ahí alguna forma para poder subir los dos archivos y ya te lo miras tu en algún entorno IDE? y donde están las normas para leérmelas :).

UsuarioJTable:
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"


Clase ModeloJTableUsuario:
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();
}

}

}
#19
PHP / Re: Archivos en PHP
19 Febrero 2012, 16:07 PM
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

Lo siento si te molesto de nuevo, ya he conseguido hacer eso, ahora como hago para que el usuario pueda descargarlo, es decir puedo coger el link por ejemplo raíz/documentos/archivo.jpg, pero como hago para que la gente lo pueda descargar, he pensado poner un botón descarga pero no se como descargarlo o hacer que descargue :P. También tengo que eliminarlo (de la base de datos no seria porblema, el problema seria de la carpeta) y poder modificar el nombre (lo mismo que eliminar). Tienes idea de como hacerlo?
#20
Java / Re: ¿No se encuentra origen de datos?
19 Febrero 2012, 14:32 PM
entonces estamos igual :)