|
Mostrar Temas
|
Páginas: [1] 2 3
|
1
|
Programación / PHP / como forzar la descarga de ficheros de extensiones multiples con PHP?
|
en: 15 Octubre 2011, 06:59 am
|
Buenas a todos,he estado realizando un scrip que se me ocurrio que tal vez se pueda hacer o tal vez,me paso por la mente,el scrip que quiero hacer es algo sobre descarga de archivos multiples con php o forzar la descarga de multiples extensiones esto es lo que se hace al pasarle un valor a este codigo y forza la descarga <?php $enlace ="/".$id; header ("Content-Disposition: attachment; filename=".$id." "); header ("Content-Type: application/octet-stream"); ?>
y esta demas decir que para utizarlo se le pasa la ruta dowload?id=nombrearchivo.x pero ahora viene lo bueno,lo que yo quiero hacer es que! lo primero seria renombrar nuestro archivo download_multiple.php y con ese archivo cuando yo lo ejecute que me descargue todo lo que se encuentra en ese directorio ya sean .png,.jpg,.zip,.rar,.pdf,.mp3,.css ficheros de multiples extensiones por asi decirlo! buscando me he encontrado con unos codigos que tal vez alguno de ustedes expertos en el area me pudiera sugerir este es con que estoy tratando: <?php $file = $_SERVER["DOCUMENT_ROOT"].'/.../.../'.$_GET['file']; if(!file) { // File doesn't exist, output error die('file not found'); } else { //$file_extension = strtolower(substr(strrchr($file,"."),1)); switch( $fileExtension) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; default: $ctype="application/force-download"; } nocache_headers(); // Set headers header("Pragma: public"); // required header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); // required for certain browsers header("Content-Description: File Transfer"); header("Content-Type: $ctype"); header("Content-Disposition: attachment; filename=".$file.";" ); header("Content-Transfer-Encoding: binary"); } ?>
lo que entiendo por este codigo es que me descarga esos tipos de formatos de archivos,pero no se como implementarlo tambien encontre algo asi creando un arreglo de extensiones de archivos <?php $extensiones = array("PNG","zip","doc","rar","jpg"); $f = $_GET["f"]; if(strpos($f,"/")!==false){ die("No puedes navegar por otros directorios"); } $ftmp = explode(".",$f); $fExt = strtolower($ftmp[count($ftmp)-1]);
if(!in_array($fExt,$extensiones)){ die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt"); }
header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$f\"\n"); $fp=fopen("$f", "r"); fpassthru($fp); ?>
pero no me funciona siempre me manda aqui y no entiendo si tengo todo bien die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt"); y otra cosa que me gustaria implementar es listar todos los archivos de ese directorio para eso lo hago asi: <?php echo "<h3>Index</h3>\n"; echo "<table>\n"; $directorio = opendir("."); while ($archivo = readdir($directorio)) { $nombreArch = ucwords($archivo); $nombreArch = str_replace("..", "Atras", $nombreArch); echo "<tr>\n<td>\n<a href='$archivo'>\n";
echo " border=0>\n"; echo "<b> $nombreArch</b></a></td>\n"; echo "\n</tr>\n"; } closedir($directorio); echo "</table>\n"; ?>
de esta manera me lista todo el directorio y de ahi partir para forzar la descarga de todos los ficheros con extensiones que contenga la carpeta! he estado leyendo el api de php pero viene algo parecido pero no le entiendo muy bien! http://php.net/manual/en/function.readfile.phpbueno seguire buscando como implementar para descargar multiples archivos o ficheros con direntes extensiones saludos xd y de antemano gracias!
|
|
|
2
|
Programación / Java / Validar un archivo txt que solo contenga 1 y 0,para dibujar una img?
|
en: 12 Septiembre 2011, 16:33 pm
|
Hola,saludos XDs! Bueno estoy tratando de solucionar esto,se trata de poder validar un archivo de texto que contiene 1 y 0 que conforman una imagen,donde de un programa java lo mando a llamar y me pinta la imagen en un jpanel,ahora lo que yo quiero hacer es poder validarlo que si esta en el archivo 0111*+´/ cualquier otro simbolo me marque error para esto trate de hacer lo siguiente: import java.text.*; import java.util.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.StringTokenizer; import javax.swing.*; import javax.swing.JFileChooser; // Clase class dibujo extends Frame { // Función de control de la aplicación try{ dir = JOptionPane. showInputDialog(null, "Escribe solo el nombre del archivo a ejecutar"+" ", "micky.isc"); int a=dir.length(),b=a-4; String sub =dir. substring(b,dir. length()),sub2 =".isc"; if (sub.equals(sub2)){ //compara imagen int numlineas = 0,total=0; while ((Cadena = cd.readLine())!=null) { numlineas++; cad += Cadena+"\n"; aqui en el while no se si desde aqui lovalido ya que me lee el archivo txt... } } else { } } e.printStackTrace(); } d.printStackTrace(); } new dibujo(); } public dibujo() { this.setTitle( "Dibujo" ); this.setSize( 350,350 ); this.setVisible( true ); this.addWindowListener( } } ); } g.translate( this.getInsets().left,this.getInsets().top ); byte[] sep = cad.getBytes(); System. out. println ("hacker " +sep [2]); if (cad.length() >= 1000){ int x=0,y=0; for(int i=0; i<sep.length; i++){ if (sep[i] == 48 || sep[i] == 49 || sep[i]==10 ||sep[i]==255 ) { if (sep[i]==48){ g.fillRect( x+70,y+50,1,1); x=x+1; } if (sep[i] == 49){ g.fillRect( x+70,y+50,1,1 ); x=x+1; } if (sep[i]== 10){ y=y+1; x=0; } }//// else{ ///////////////////// aqui esta mi duda le digo que si existe cualquier digito o caracter de 48=1 y 49=0 me mande error pero no entra en el ciclo mi pregunta es por que! if (!(sep[i]==48)&&!(sep[i] == 49)){ System. out. println("eror"+sep [i ]); } } } } else { } } }
bueno espero me haya dado entender,espero me puedan ayudar...saludos...
|
|
|
3
|
Programación / Java / como limpiar datos de un jtable al cerrar una ventana que es jpanel??
|
en: 6 Junio 2011, 14:55 pm
|
hola buenas manes bueno me quede algo atoradoi y queria ver si alguien tiene una idea de como lo puedo hacerlo que necesito hacer es que cuado cierro un jpanel lo que se habia cargdo en jtable yal cerrarlo me lo vacie me lo deje igual bueno he intentado hacerlo asi bueno primero en otra clase lo declaro con esto y para ocuparlo lo ocupo asi de esta manera modelo_pro.addColumn("Nombre de imagen"); modelo_pro.addColumn("Nombre de usuario"); y le paso el modelo... jTable2.setModel(modelo_pro); y con esto lo agrego o lo cargo al jtable fila[0] = app; fila[1] = usuario; modelo_pro.addRow ( fila ); add row para agregar }
pero no me la elimina bueno habia escuchado algo asi pero no se como implementa esto por ejemplo estaba intentado que cuando se cierre la aplicacion,me limpie el jtable para esto estaba viendo la manera de hacer algo asi pero no me sale.. que cuando lo cierre me limpie el jtable.... { @Override { model.setRowCount(0) ; } }
bueno aqui dejo una imagen que una imagen vale mas que mil palabras que cuando cierre l jpanel me limplie el jtable con los datos cargados de esa ventana aver si alguien me ayuda en esa parte muchas gracias
|
|
|
4
|
Programación / Java / como pasar un resulset a un jcombobox dentro de jtable?
|
en: 20 Mayo 2011, 18:26 pm
|
hola bueno,que tal, me surgio otra duda...ahora implemente lo que muchos preguntan,como tener un jcombobox a un jtable.... ahora si yo cargo los items de mi base de datos de esta manera....normalmente public void cargarcombo (JComboBox jcbclave_product ){ try{ Class.forName (driver); System. out. println ("su conexion ha sido muy exitosa"+con ); stmt = con.createStatement(); rs = stmt.executeQuery("SELECT clave FROM productos"); jcbclave_product.removeAllItems(); jcbclave_product.addItem("<-Seleccionar->"); while(rs.next()==true){ jcbclave_product.addItem(rs.getObject(1)); }//fin del while e.printStackTrace(); }//fin del try }
y ahora mando a traer mi metodo asii esto lo pongo en initscomponents bd.cargacombo(jcbclave_product);
ahora mi pregunta es... como le paso los datos a un jcombobox que esta en un jtable?eso es lo que no entiendo como hacerlo... yo el agrego el jcombobox en estas lineas ESTOS SON LOS datos que tiene public static final String[] DATA = { "Dato 1", "Dato 2", "Dato 3", "Dato 4" }; //le digo que la COLUMNA 4 LO VA A TENER tabla.getColumnModel().getColumn(4).setCellEditor(defaultCellEditor);
ahora mi pregunta...como se lo implemento con la consulta que yo tengo vere la manera de hacerlo eso es lo que no entiendo..bueno gracias saludos
|
|
|
5
|
Programación / Java / como generar un modelo de jtable?
|
en: 17 Mayo 2011, 05:55 am
|
hola manes buenas manes...me quede atorado espero aver si alguien me puediera ayudar si no es mucha molestia.. lo que quiero hacer es si alguien me puede sugerir una manera de genrar este modelo de tabla insertando los datos de un jtable bueno este sistema lo estoy pasando a java y me pregunto como esto lo hago con java.... bueno ahora pongo la imagen que tengo hasta ahorita en java y ahora mi codigo de la tabla que llevo hasta el momento..
public class estadodeclientes extends javax.swing.JInternalFrame {
public estadodeclientes() { initComponents(); }
@SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jTextField2 = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); jTextField3 = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); jTextField4 = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); jTextField5 = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jTextField6 = new javax.swing.JTextField(); jTextField7 = new javax.swing.JTextField(); jTextField8 = new javax.swing.JTextField(); jTextField9 = new javax.swing.JTextField(); jTextField10 = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jLabel11 = new javax.swing.JLabel(); jTextField11 = new javax.swing.JTextField();
setTitle("Estados de Cuenta");
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Estados de Cuenta"));
jLabel1.setText("Cliente:");
jLabel2.setText("Factura:");
jLabel3.setText("Impte venta :$");
jLabel4.setText("Impte. Enganche:$");
jLabel5.setText("Saldo Inicial:$");
jLabel7.setText("Dirreccion:");
jLabel8.setText("Colonia:");
jLabel9.setText("Tel. Domicilio:");
jLabel10.setText("celular:");
jLabel6.setText("Fecha:");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField9, javax.swing.GroupLayout.DEFAULT_SIZE, 96, Short.MAX_VALUE))) .addGap(64, 64, 64) .addComponent(jLabel2)) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel7) .addComponent(jLabel8)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel10) .addGap(18, 18, 18) .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup() .addComponent(jLabel5) .addGap(36, 36, 36) .addComponent(jTextField5, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel4) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField4, javax.swing.GroupLayout.DEFAULT_SIZE, 145, Short.MAX_VALUE)))) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(86, 86, 86) .addComponent(jLabel6) .addGap(18, 18, 18) .addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(58, 58, 58)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(20, 20, 20) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel7) .addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8) .addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(10, 10, 10) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(11, 11, 11)))) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel6) .addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel5) .addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel9) .addComponent(jLabel10) .addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) );
jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {new Integer(1), null, null, null, null}, {new Integer(2), null, null, null, null}, {new Integer(3), null, null, null, null}, {new Integer(4), null, null, null, null}, {new Integer(4), null, null, null, null}, {new Integer(6), null, null, null, null}, {new Integer(7), null, null, null, null}, {new Integer(8), null, null, null, null}, {new Integer(9), null, null, null, null}, {new Integer(10), null, null, null, null}, {new Integer(11), null, null, null, null}, {new Integer(12), null, null, null, null} }, new String [] { "No. Pagos", "Fecha VCTO", "Fecha de Pago:", "Importe:", "Cobrador" } ) { Class[] types = new Class [] { java.lang.Integer.class, java.lang.Object.class, java.lang.Object.class, java.lang.Double.class, java.lang.Integer.class };
public Class getColumnClass(int columnIndex) { return types [columnIndex]; } }); jScrollPane1.setViewportView(jTable1);
jLabel11.setText("Saldo Actual:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(20, 20, 20) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 561, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(63, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(366, Short.MAX_VALUE) .addComponent(jLabel11, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(128, 128, 128)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(31, 31, 31) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) .addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) );
pack(); }// </editor-fold>
// Variables declaration - do not modify private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField10; private javax.swing.JTextField jTextField11; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; private javax.swing.JTextField jTextField8; private javax.swing.JTextField jTextField9; // End of variables declaration
}
ahora mi pregunta es como la puedo genrar automaticamente si hacerlo con un for como algo como estoo.... y en vez de el value ponerle setvalue...alguien me puede ayudar siii? te antemano muchas gracias double total=0; for (int fila=0; fila < dtm.getRowCount(); fila++) { total = (double) (double) (total + (Double) dtm.getValueAt(fila, 2)); // la columna 2 es la de costo. this.montocompra.setText(Double.toString(total)); }
|
|
|
6
|
Programación / Java / diferentes maneras de generar un reporte en java?
|
en: 13 Mayo 2011, 18:30 pm
|
bueno esto esta algo enredado,lo que quiero hacer es generar un reporte de una consulta en java,pára eso ocupo ireport y librerias jasper report...ahora aqui viene mi problema...yo creo el reporte en ireport lo diseño..lo pongoe n una ubicacion y lo mando a llamar el jrxml,me lo compila y me lo manda en pantalla.....pero estaba pensando..si alguien de ustedes me podria decir la manera en que se puede ser automaticamente... Oseaa tomar la tabla que esta activa con los registros y mandar el reporte asi automatico como hacen los sistemas de oxxo del walrtmart etc... bueno con este codigo automaticamente me manda a imprimir......esto seria una private void btnImprimirActionPerformed (java. awt. event. ActionEvent evt ) { try { //Mensaje de encabezado //Mensaje en el pie de pagina //Imprimir JTable tabla. print(JTable. PrintMode. NORMAL, headerFormat, footerFormat ); Logger.getLogger(frmImprimir_JTable.class.getName()).log(Level.SEVERE, null, ex); } }
ahoraa me pregunto si tal si le paso un query y de ese query me genera el reporte,perooo el reporte lo tengo que diseñar...con ireport...sigo buscando de como hacer esto pasando un query y que de ahi me genere el reporte..algo como esto package imprimir_jtable; import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.export.*; import net.sf.jasperreports.engine.util.*; import net.sf.jasperreports.view.*; import java.sql.*; import java.io.*; import java.util.*; public class Main { public Main() { } public static void main (String[] args ) { // TODO code application logic here try { //Ruta de Archivo Jasper String fileName ="C:\\Users\\Hacker\\Desktop\\rep_cli.jasper"; //Ruta de archivo pdf de destino String destFileNamePdf ="C:\\Users\\Hacker\\Desktop\\rep_cli.pdf"; //Ruta de archivo xls de destino String destFileNameXls ="C:\\Users\\Hacker\\Desktop\\rep_cli.xls"; //Pasamos parametros al reporte Jasper. Object put = parameters. put("sql_query", new String("select * from categorias")); //Preparacion del reporte (en esta etapa se inserta el valor del query en el reporte). JasperPrint jasperPrint =JasperFillManager. fillReport(fileName, (Map) put,getConnection ()); //Creación del PDF JasperExportManager.exportReportToPdfFile(jasperPrint,destFileNamePdf); //Creación del XLS JRXlsExporter exporter = new JRXlsExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFileNameXls); exporter. setParameter(JRXlsExporterParameter. IS_ONE_PAGE_PER_SHEET, Boolean. TRUE); exporter.exportReport(); } { System. out. println(e. getMessage()); } } /**Metodo para crear la conexion a DB*/ //Configuración de la conexión. String driver = "com.mysql.jdbc.Driver"; String connectString = "jdbc:mysql://127.0.0.1:3306/almacen"; Class.forName(driver); //Retornamos la conexión establecida. return conn; } }
esta otra manera encontre donde se le pasan las columnas y las filas pero ahi ya estan declaradas como seria para pasarle un query me lo genere de ese resultado....aqui ocupan la libreria libreria itext package imprimir_jtable; import java.awt.BorderLayout; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTable; import javax.swing.JToolBar; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.PageSize; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfWriter; public class JTable2Pdf extends JFrame { public JTable2Pdf() { setTitle("JTable test"); createToolbar(); createTable(); }); } private void createTable() { {"Mary", "Campione", "Snowboarding", new {"Alison", "Huml", "Rowing", new {"Kathy", "Walrath", "Chasing toddlers", {"Mark", "Andrews", "Speed reading", new {"Angela", "Lih", "Teaching high school", new Integer(4), new Boolean(false)} }; {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"}; table = new JTable(data, columnNames ); // Use a panel to contains the table and add it the frame } private void createToolbar() { print(); } }); exit(); } }); tb.add(printBtn); tb.add(exitBtn); } /////////ojoo aqui es para imprimir el pdf private void print() { try { PdfWriter writer = PdfWriter. getInstance(document, new FileOutputStream("C:\\Users\\Hacker\\Desktop\\myy_jtable_fonts.pdf")); document.open(); PdfContentByte cb = writer.getDirectContent(); // Create the graphics as shapes cb.saveState(); Graphics2D g2 = cb. createGraphicsShapes(500, 500); // Print the table to the graphics Shape oldClip = g2. getClip(); g2.clipRect(0, 0, 500, 500); table.print(g2); g2.setClip(oldClip); g2.dispose(); cb.restoreState(); document.newPage(); // Create the graphics with pdf fonts cb.saveState(); g2 = cb.createGraphics(500, 500); // Print the table to the graphics oldClip = g2.getClip(); g2.clipRect(0, 0, 500, 500); table.print(g2); g2.setClip(oldClip); g2.dispose(); cb.restoreState(); e.printStackTrace(); System. err. println(e. getMessage()); } document.close(); } /** * Exit app */ private void exit() { } public static void main (String[] args ) { JTable2Pdf frame = new JTable2Pdf(); frame.pack(); frame.setVisible(true); frame.print(); frame.exit(); } }v
y esto me da como resultado esto... no se si ustedes me podria ayudar o dar alguna sugerenciaa de como han ustedes trabajado con esto y solucionado,si no es mucha molestiaa...de antemano muchas gracias saludos...maness.... seguire buscando en el sen sei google e ir implementando aver si me sale algo decente ..
|
|
|
7
|
Programación / Java / como controlar campo autoincrement en mysql y java?
|
en: 12 Mayo 2011, 02:39 am
|
hola buenas men..bueno mi duda es si alguien ha trabajado con un campo increment lo unico que quiero es saber tengo un campo factura en donde realizo ventas y en las ventas el sistema asigna un contador... ahora eso es lo que quiero incrementar como esta imagen... si de dan cuenta saco la factura con esto public void cargarnum_factura(JTextField jtxt_factura){ try{ Class.forName (driver); con = DriverManager.getConnection (url,user,pass); System.out.println ("su conexion ha sido muy exitosa"+con); rs = stmt.executeQuery("SELECT factura FROM ventas "); //reiniciar contador a cero ALTER TABLE nombre_tabla AUTO_INCREMENT= 1 ResultSetMetaData RSMD = rs.getMetaData(); int ColumnCount = RSMD.getColumnCount(); Object[] Resultados = new Object[ColumnCount]; while(rs.next()){ for(int x=1;x<ColumnCount;x++){ Resultados[x] = rs.getObject(x+1); aqui le sumo uno pero como la imagen de igual manera me aparece 2 y tiene que ser 3 este metodo lo pongo en item mouseclicked para que lo haga gracias } } //aqui lo mando ami jtexfield jtxt_factura.setText(Resultados[0].toString());
} catch (Exception ex) {
}
}
bueno espero si alguien me pudiese ayudar no os quitara mucho tiempo de vos saludos
|
|
|
8
|
Programación / Java / como calcular el costo e importe de un producto en java y mysql?
|
en: 4 Mayo 2011, 02:01 am
|
buenas que tal a todos,bueno tal vez mi pregunta este un poco enredada..pero me surgio una duda..tengo una aplicacion llamada ventas y en la cual tengo yn jcombobox y ahi cargo las claves de los productos...ahora mi duda es como le puedo hacer que dependiendo de la clave del producto,me calcule el costo y el importe total.. tomando en cuenta que esa clave del producto tien un nombre y ese nombre de ese producto puede contener iva o no puede contener iva..pero como le hago para que m me lo calcule automaticamente..mi duda es como le hago que dependiendo de la clave que se escoja me calcule l importe estaba pensando en esto si hago un select iva from producto where clave=jcombobox.getselecteditem() y esa consulta la guardo en una variable o como le puedo hacer..para que nos entendamos aqui dejo una imagenn saludos... bueno si de dan cuenta aqui agrego la clave al producto y su costoo y el ivaa ahora aqui en esta imagen despliego la clave que claro la clave ya contien un costo y ese producto puede contener iva o no puede contener iva entonces como calculo que depndiendo del producto que escoga y la cantidad que quieren comprar calcule el costo y el importe total no se si me pudiera dar alguna sugerencia de antemano muchas gracias saludos...
|
|
|
9
|
Programación / Java / filtrar Texto en un JTable conectado a un BD con un JButton y un JTextField?
|
en: 20 Marzo 2011, 00:14 am
|
Buenas xd a toda la comunidad,queria ver si me podian ayudar,a ordenar estos 2 archivos,bueno!tengo un JTable conectado a la base de datos,,tengo un JTextField y tengo un JButton,lo que intento hacer es filtrar texto desde un JTextField.... en este primer archivo me corre una jtable con unos datos por default,escribo en el jtextfield y le doy buscar y me encuentra lo que anote en el jtextfield con sorter.setRowFilter ( RowFilter.regexFilter ( text )) ;,pero el PROBLEMA es que sto no esta coenctada a la base de datos y se me vino a la mente que esta funcion la puedo ocupar para buscar datos en un jtable donde si tengo implementado la conexion desde una base de datos,si alguien me pudiera ayudar a implementarlo este es el archivo donde filtra el texto: import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.RowFilter; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; public class RegexTable { public static void main ( String args []) { frame. setDefaultCloseOperation ( JFrame. EXIT_ON_CLOSE ) ; Object rows [][] = { { "A" , "About" , 44.36 } , { "B" , "Boy" , 44.84 } , { "C" , "Cat" , 463.63 } , { "D" , "Day" , 27.14 } , { "E" , "Eat" , 44.57 } , { "F" , "Fail" , 23.15 } , { "G" , "Good" , 4.40 } , { "H" , "Hot" , 24.96 } , { "I" , "Ivey" , 5.45 } , { "J" , "Jack" , 49.54 } , { "K" , "Kids" , 280.00 } } ; String columns [] = { "NOMBRE" , "DESCRIPCION" , "PRECIO" } ; public Class getColumnClass ( int column ) { Class returnValue; if (( column >= 0 ) && ( column < getColumnCount ())) { returnValue = getValueAt ( 0 , column ) .getClass () ; } else { } return returnValue; } } ; final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel> ( model ) ; table.setRowSorter ( sorter ) ; button.setBounds(500,100,150,20); button.addActionListener ( String text = filterText. getText () ; if ( text.length () == 0 ) { sorter.setRowFilter ( null ) ; } else { sorter.setRowFilter ( RowFilter.regexFilter ( text )) ; } } }) ; frame.setSize ( 300 , 250 ) ; frame.setVisible ( true ) ; } }
y ese es mi archivo donde tengo conectada la base de datos y aqui le quiero implementar un JButton y un JTextField,con los metodos de archivo anterior,pero como NO se como armar los 2 archivos en uno solo me falta algo de logica algoritmica o matematica,pero si alguien me pudiera decir los pasos que debo hacer se lo agradecere bastante import java.awt.Event.*; import javax.swing.*; import java.awt.*; import javax.swing.table.*; import java.sql.*; public static void main (String[] args ) { NuevaVentana v=new NuevaVentana(); v. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); v.setVisible(true); } } class NuevaVentana extends JFrame{ private static final int ancho=300; private static final int largo=300; public NuevaVentana(){ this.setTitle("Prueba Tabla"); this.setSize(ancho,largo); NuevoPanel p=new NuevoPanel(); add(p); //JButton bt= new JButton("buscar"); //bt.setBounds(300,100,150,20); // p.add(bt); } } class NuevoPanel extends JPanel{ { modelo.addColumn("clave"); modelo.addColumn("Nombre"); modelo.addColumn("descripcion"); } public NuevoPanel(){ mostrarTabla(); //add ( p, BorderLayout.NORTH ) ; //bt.setBounds(300,100,150,20); //add(bt); bt.addActionListener ( String text = filterText. getText () ; if ( text.length () == 0 ) { sorter.setRowFilter ( null ) ; } else { sorter.setRowFilter ( RowFilter.regexFilter ( text )) ; } } }) ; } public void mostrarTabla(){ try { ResultSet rs = s. executeQuery ("select * from categoria"); while (rs.next()) { fila[0]=rs.getInt ("clave"); fila[1]=rs.getString ("Nombre"); fila[2]=rs.getString("descripcion"); modelo.addRow(fila); } conexion.close(); } { e.printStackTrace(); } } }
ojala que alguien me pueda ayudar,ya me tarde algo en implementarlo... NOTA: todo por la che logicaaaa que me faltaa desarrollar,pero bueno!saludos!se los agradecere bastante SI ALGUIEN me ayuda bueno bye!
|
|
|
10
|
Programación / Java / Como Realizar un Buscador en Java y MySql?
|
en: 12 Marzo 2011, 22:48 pm
|
Buenas saludos a todos,bueno mi problema es que intento realizar un buscador en java,pero lo quiero es que cuando vaya escribiendo en el JTextField();y me vayan apareciendo los posibles resultados,lo estoy implementando con esto: public String[] buscarpersona (int id ){ try { Class.forName (driver); System. out. println ("su conexion ha sido muy exitosa"); stmt = con.createStatement(); rs=stmt.executeQuery("SELECT * FROM personas WHERE personaid='" +id+"'"); datos =new String[rsmd. getColumnCount()]; int cont2=1; //ciclo de llenado de resultset al arreglo para poder mandarlo al programa //arreglo-->0 //resultset-->1 while(rs.next()){ for(int cont=0;cont<rsmd.getColumnCount();cont++){ datos[cont]=rs.getString(cont2); cont2++; } } stmt.close(); con.close(); return datos; } e.printStackTrace(); System. err. println ( e. getMessage ()); return datos; } }
y esto es lo que tengo en java: private void btnbuscarActionPerformed (java. awt. event. ActionEvent evt ){ try{ int id =Integer. parseInt(txtReg. getText()); datos=bd.BuscarPersona(id); if(datos!=null){ //datos[0] corresponde al id txtNombre.setText(datos[1]); txtDomicilio.setText(datos[2]); txtMail.setText(datos[3]); txtCiudad.setText(datos[4]); } JOptionPane. showMessageDialog(this, "debe escribir un numero en el campo de registro", "aviso", JOptionPane. ERROR_MESSAGE); txtReg.grabFocus(); txtReg.selectAll(); } }
aver si alguien me puede recomendar algo,estaba buscando sobre keylistener,no se si alguno de ustedes han hecho algo parecido,saludos y gracias de antemano xauz...
|
|
|
|
|
|
|