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ú

Temas - klaine

#1
Hola, eso, quería saber si existe alguna librería o similar para java, de antemano gracias, saludos!
#2
Eso, un profesor habló conmigo y dijo que mysql era orientado a objetos, que se podian crear clases y que las columnas podian guardar objetos, estuve buscando info relacionada y solo encontre clases php que manejan mysql, ¿es esto cierto o es parte de la descabellada fantasía de mi profesor o es mi ineptitud la que no me permitió encontrar documentacion?

De antemano, gracias por sus respuestas
#3
PHP / [PHP + JSP] Es posible?
2 Diciembre 2011, 21:19 PM
Hola, estuve leyendo en un libro que se podía mezclar java con php, en el servidor tomcat, dejo el extracto del libro:

Introduccion:

Cita de: (2004) Php 5 And Mysql Bible

The relationship between PHP and Java has changed significantly
with each new release. Unsurprisingly, given the source code, PHP
initially had much more in common with C. PHP4 supported integration
of PHP and Java using a Java Servlet environment or, more experimentally,
directly into PHP. Finally, with the overhaul of the object
model in PHP5, there's a distinctly Java feel to the PHP approach to
object oriented programming. Java users will find much of PHP5's
new object model very familiar, though with important differences.
Given these changes, as PHP takes on a more Java-like cast, there are
two possibilities for which a discussion of PHP and Java might be
pertinent. You might need to work on a project that requires PHP and
Java or Java Server Pages (JSP) to work in tandem. Or you may be
approaching PHP from a Java background and want to know about
the similarities and differences in order to learn PHP faster. We will
deal with both needs in this chapter.
If you don't have a need to use Java, or aren't already


Expolicacion y ejemplo:

Cita de: (2004) Php 5 And Mysql Bible

Java Server Pages and PHP
PHP can fulfill many functions similarly to Java Server Pages (JSP). The JSP servlet engine
serves as a scripting language for use with Java, and, just as PHP, is often used in front end
applications.
Embedded HTML
PHP is more similar to JSP than Java itself in that you are allowed to write HTML directly
rather than using endless print statements. Unlike Java, but like JSP, variables can also be
referenced from within a block of HTML. A simple HTML page using JSP script might look
like this:
<%
String greeting = "Hello, world";
%>
<HTML>
<HEAD>
<TITLE>Fun with JSP</TITLE>
</HEAD>
<BODY>
<H1><%= greeting %></H1>
</BODY>
</HTML>
Similarly, using PHP, you can write:
<?php
$greeting = "Hello, World";
?>
<HTML>
<HEAD>
<TITLE>Fun with PHP</TITLE>
722 Part IV ✦ Connections
</HEAD>
<BODY>
<H1><?php echo $greeting ?></H1>
</BODY>
</HTML>
Pages can freely alternate between HTML and JSP, just as in using HTML and PHP.


De antemano, gracias por sus respuestas.

PD: Tengo el apache tomcat instalado, pero es la instalacion que viene por defecto, sinceramente no se por donde empezar, si alguien quiere el libro que me mande un mp y se lo mando por correo. 1083 paginas, esto de java+php empieza en la 719
#4
Java / [Sockets] Sirven en internet?
2 Diciembre 2011, 21:07 PM
Hola, estuve viendo unos videotutoriales que me paso un amigo, el tipo se llama nikitus y enseña a crear una conexion con sockets, en el video muestra como hacer un pequeño xat, todo el codigo funka, pero me gustaria saber si es posible hacer que funke en internet, traté de poner mi direccion ip en el programa cliente y pasarselo a un amigo, pero no funciono, codeé en base al video, dos clases, un cliente y un server, en localhost corre bien, pero me gustaría saber, si es posible, que debo cambiarle para que funcione en internet, de antemano gracias.

Clase servidor:

Código (java) [Seleccionar]


import java.net.ServerSocket;
import java.net.Socket;
import java.io.ObjectOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import javax.swing.JOptionPane;

public class XServer {

  private ServerSocket ss;
private Socket s;
private ObjectOutputStream oos;
private boolean isRunning=true;
private ObjectInputStream ois;
private volatile Command cmd=null;


    XServer(){

          try{

     ss = new ServerSocket(9999);
     s = ss.accept();
     oos=new ObjectOutputStream(s.getOutputStream());
     ois=new ObjectInputStream(s.getInputStream());

     }catch(IOException ioex){

      ioex.printStackTrace();

     }

this.sender();
this.receiver();
this.dealReceive();
this.autoClose();

    }

    void sender(){

Thread t=new Thread(new Runnable(){

  public void run(){

   while(XServer.this.isRunning){

    int type=0;

    try{

  String msg=JOptionPane.showInputDialog("Mensaje para el Cliente");

   Command c=new Command();

   c.setMsg(msg);

   type=(msg.equalsIgnoreCase("Close"))? 0:1;

   c.setType(type);

   oos.writeObject(c);

  }catch(IOException ex) {

   ex.printStackTrace();

  }

    if(type==0){

     break;

    }

   }

  }

});

t.start();

    }

    void receiver(){

    Thread t=new Thread(new Runnable(){

     public void run(){

      while(XServer.this.isRunning){

        try{

      Thread.sleep(1000);

      Object aux=ois.readObject();

      if(aux!=null && aux instanceof Command){

        XServer.this.cmd = (Command) aux;

      }

     }catch(InterruptedException intex){

      intex.printStackTrace();

     }catch(IOException ioex){

      ioex.printStackTrace();

     }catch(ClassNotFoundException classex){

      classex.printStackTrace();

     }

      }

     }

    });

    t.start();

    }

    void dealReceive(){

     Thread t=new Thread(new Runnable(){

      public void run(){

       while(XServer.this.isRunning){

       try{

        Thread.sleep(1000);

        Command c=XServer.this.cmd;

        if(c.getType().equals("Message")){

         System.out.println(c.getMsg());

        }else if(c.getType().equals("Action") && c.getMsg().equals("Close")){

         XServer.this.isRunning=false;

        }

     }catch(InterruptedException intex){

      intex.printStackTrace();

     }catch(NullPointerException nullex){

     }finally{

       XServer.this.cmd=null;

     }

     }

      }

     });

     t.start();

    }

    void autoClose(){

Thread t=new Thread(new Runnable(){

  public void run(){

   while(true){

    try{

     Thread.sleep(200);

     if(!XServer.this.isRunning){

      XServer.this.ois.close();
      XServer.this.oos.close();
      XServer.this.s.close();

     }

    }catch(InterruptedException intex){

     intex.printStackTrace();

    }catch(IOException ioex){

     ioex.printStackTrace();

    }

   }

  }

});

t.start();

}

}




Clase cliente:

Código (java) [Seleccionar]


import java.net.Socket;
import java.io.ObjectOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import javax.swing.JOptionPane;

public class XClient {

  private Socket s;
private ObjectOutputStream oos;
private boolean isRunning=true;
private ObjectInputStream ois;
private volatile Command cmd=null;


    XClient(){

               try{

     s=new Socket("10.5.4.124", 9999);
     oos=new ObjectOutputStream(s.getOutputStream());
     ois=new ObjectInputStream(s.getInputStream());

     }catch(IOException ioex){

      ioex.printStackTrace();

     }

               this.sender();
               this.receiver();
               this.dealReceive();
               this.autoClose();

    }

    void receiver(){

    Thread t=new Thread(new Runnable(){

     public void run(){

      while(XClient.this.isRunning){

        try{

      Thread.sleep(1000);

      Object aux=ois.readObject();

      if(aux!=null && aux instanceof Command){

        XClient.this.cmd = (Command) aux;

      }

     }catch(InterruptedException intex){

      intex.printStackTrace();

     }catch(IOException ioex){

      ioex.printStackTrace();

     }catch(ClassNotFoundException classex){

      classex.printStackTrace();

     }

      }

     }

    });

    t.start();

    }

        void dealReceive(){

     Thread t=new Thread(new Runnable(){

      public void run(){

       while(XClient.this.isRunning){

       try{

        Thread.sleep(1000);

        Command c=XClient.this.cmd;

        if(c.getType().equals("Message")){

         System.out.println(c.getMsg());

        }else if(c.getType().equals("Action") && c.getMsg().equals("Close")){

         XClient.this.isRunning=false;

        }

     }catch(InterruptedException intex){

      intex.printStackTrace();

     }catch(NullPointerException nullex){

     }finally{

       XClient.this.cmd=null;

     }

     }

      }

     });

     t.start();

    }

void sender(){

Thread t=new Thread(new Runnable(){

  public void run(){

   while(XClient.this.isRunning){

    int type=0;

    try{

  String msg=JOptionPane.showInputDialog("Mensaje para el Server");

   Command c=new Command();

   c.setMsg(msg);

   type=(msg.equalsIgnoreCase("Close"))? 0:1;

   c.setType(type);

   oos.writeObject(c);

  }catch(IOException ex) {

   ex.printStackTrace();

  }

    if(type==0){

     break;

    }

   }

  }

});

t.start();

    }

void autoClose(){

Thread t=new Thread(new Runnable(){

  public void run(){

   while(true){

    try{

     Thread.sleep(200);
     
     if(!XClient.this.isRunning){

      XClient.this.ois.close();
      XClient.this.oos.close();
      XClient.this.s.close();

     }

    }catch(InterruptedException intex){

     intex.printStackTrace();

    }catch(IOException ioex){

     ioex.printStackTrace();

    }

   }

  }

});

t.start();

}

}



Se me olvidaba, para lo que quiero hacer despues de aprender a manipular sockets en internet creé una clase comando, que en el futuro me servirá para mandar solo strings con referencias a lo que se debe hacer y no mandar objetos pesados a traves de la conexion, esta es la clase:

Código (java) [Seleccionar]


import java.io.Serializable;

public class Command implements Serializable{

private String[] types={"Action", "Message", "Dialog", "Input", "Warning", "Error"};
private String[] actions={"Close"};

private String type="";
private String msg="";

    Command(){

     this.type= types[1];

    }

    Command(String msg){

     this.type=this.types[0];
     this.msg=msg;

    }

    Command(String msg, int type){

     this.type=this.types[type];
     this.msg=msg;

    }

public String getMsg() {
  return msg;
}

void setDialog(String msg){

  this.msg=msg;
  this.type=types[2];
 
}

void setInput(String msg){

  this.msg=msg;
  this.type=types[3];

}

void setWarning(String msg){

  this.msg=msg;
  this.type=types[4];

}

void setError(String msg){

  this.msg=msg;
  this.type=types[5];

}

public void setMsg(String msg) {
  this.msg = msg;
}

public void setType(int i){

  this.type=this.types[i];

}

public String getType(){

  return this.type;

}



}





Bueno, de antemano agradezco muchísimo vuestras respuestas, saludos
#5
Hola, tengo la siguiente base de datos en mysql:

Código (sql) [Seleccionar]


create database if not exists verduleros;

drop table if exists ventas2;

create table ventas2(

idventa int not null primary key,
vendedor varchar(255) not null,
producto varchar(255) not null,
fecha date not null,
kilos int not null

)engine=innodb;




La consulta que quiero realizar segun el planteamiento es:

"Desplegar la suma de los kilos de cada producto que ha vendido cada vendedor"

Para ello pense en la siguiente consulta:

Código (sql) [Seleccionar]

select v.vendedor, v.producto,
sum(v.kilos)
from ventas2 as v
where v.kilos in
(select kilos from ventas2 where vendedor=v.vendedor and
producto=v.producto)
group by vendedor
;


El problema es que la base de datos es muy grande xD, probé la lógica de esta
consulta en una tabla pequeña y funciona, pero en la base de datos que nos entregó el profe esperé alrededor de unos 20 minutos y no me mostró nada,
lo intenté en reiteradas veces, probé a reiniciar el pc y nada, la base de datos es muy grande por lo tanto no puedo hacer esto con subconsultas (y, pensandolo, si la consulta por si sola se demora, hacer por cada fila una subconsulta es descabellado xD), se los agradecería enormemente si es posible hacer esto de otra forma.

Saludos!
#6
PHP / [PHP-MYSQL] Como crear un sp en php?
1 Noviembre 2011, 02:03 AM
Hola estoy intentando crear un procedimiento almacenado desde php a mysql, que estoy haciendo mal?

Código (php) [Seleccionar]


<html>
<head>
</head>
<body>
       <?php

        mysql_connect
("localhost""root""sr388");

        
$b=mysql_query("
create procedure pedir(in strCodBicicleta varchar(255), in strCodPeticion varchar(255), in strCodUsuario varchar(255))
begin

update bicicleta set estado='usando' where cod_bicicleta=strCodBicicleta;

insert into peticion(cod_peticion, usuario, fecha, hora)values(strCodPeticion, strCodUsuario, current_date, current_time);

end
"
);

        if(
$b){

            echo 
"funka";

        }else{

            echo 
"T_T";

        }

        
?>

</body>
</html>





Dejo las tablas bicicleta, peticion y usuario:

Código (mysql) [Seleccionar]


create table usuario(

username varchar(255) not null primary key,
permisos varchar(4) not null, -- 'ADM' o 'USER'
password varchar(255) not null,
e_mail varchar(255) not null

)engine=innodb;



Código (mysql) [Seleccionar]


create table bicicleta(

cod_bicicleta varchar(255) not null primary key,
estado varchar(6) not null -- 'usando' o 'libre'

)engine=innodb;



Código (mysql) [Seleccionar]


create table peticion(

cod_peticion int unsigned not null primary key,
usuario varchar(255) not null references usuario(username),
fecha date not null,
hora time not null

)engine=innodb;




De antemano, gracias

PD: en la shell funka con el uso de delimiter
#7
PHP / [MYSQL] Error con consulta [SOLUCIONADO]
31 Octubre 2011, 05:52 AM
Hola tengo un problemilla con la sintaxis de una funcion, me he qebrado la cabeza todo el dia tratando de ver que es, se supone que hay un registro que tiene el dato 'BC3' que debiera tomar la consulta "select * from b_disponibles" (la cual es una vista), el caso es que al mostrar me muestra 0

me conecto a la base de datos de tal forma:

He probado mostrar si la conexion funka, me muestra que si

Código (php) [Seleccionar]


mysql_connect("localhost", "root", "");

mysql_query("use providencia");



La funcion que me retorna el resultset es la siguiente:

Código (php) [Seleccionar]


function getAvailableBicicles(){

               $r = mysql_query("select * from b_disponibles");

               return $r;

}



Luego trato de hacer lo tipico con el resultset:

Código (php) [Seleccionar]


$row2=getAvailableBicicles();

           while($fila = mysql_fetch_array($row2)){

               $val = $fila['cod_bicicleta'];

           echo $val," <br>";

           }



El nombre de la columna esta bien escrito, he probado con fetch_assoc, fetch_row y nada, me muestra 0 siendo que en la tabla no hay ningun registro con ese valor  :P

Dejo la tabla bicicletas:

Código (mysql) [Seleccionar]


create table bicicleta(

cod_bicicleta varchar(255) not null primary key,
estado varchar(6) not null -- 'usando' o 'libre'

)engine=innodb;



La vista bicicletas libres:

Código (mysql) [Seleccionar]


create view b_disponibles as
select * from bicicleta where estado ='libre';



Finalmente los inserts:

Código (mysql) [Seleccionar]


insert into bicicleta(cod_bicicleta, estado)values('bc1', 'usando');
insert into bicicleta(cod_bicicleta, estado)values('bc2', 'usando');
insert into bicicleta(cod_bicicleta, estado)values('bc3', 'libre');



Antes de la creacion de las tablas esta la creacion de bases de datos y su uso xD (por si acaso)

Código (mysql) [Seleccionar]


drop database if exists providencia;
create database providencia;
use providencia;



De antemano, gracias por sus respuestas.

PD: En la shell de mysql funka  :-\
#8
PHP / Header, como se usa
11 Octubre 2011, 23:43 PM
Buenas, he visto que para redireccionar a una pag despues de cierto tiempo usan:

header("Location: pagina.php");

El caso es que no me funka cuando trabajo en la misma pagina, ¿esta mal trabajar con un solo archivo php?

De antemano, gracias, saludos!
#9
Hola, estoy haciendo una aplicación para manejar horarios, la gui la hice de tal forma que al pasarle desde donde hasta donde son los días del mes de x año me genera una ventana con los 42 JLabels con su día asignado, ahora bien, lo que necesito es cómo saber que día empieza x mes, para esto creé una subclase de GregorianCalendar, a la cual llamé ZCalendar, los métodos más importantes que me interesería saber si están bien hechos son getFirtsDayOfMonth() y getLastDayOfMonth(), lo que pasa es que a veces se me corre un día el calendario si pudieran decirme que estoy haciendo mal estaría bastante agradecido.

Código (java) [Seleccionar]

package horario;

import java.util.HashMap;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* Clase para obtener los datos necesarios para construir la interfaz grafica <code> Meses </code>
*
* @param año Los datos del objeto se crearan a pertir del año dado
* @param mes Los datos del objeto se crearan a pertir del mes dado
* @author Zero
*/
public class ZCalendar extends GregorianCalendar{

    Calendar g=GregorianCalendar.getInstance();

    int[] dias={g.MONDAY, g.TUESDAY, g.WEDNESDAY,g.THURSDAY,g.FRIDAY,g.SATURDAY,g.SUNDAY};

    /**
     * Arreglo utilizado para saber que día termina cada mes del año
     */
    int[] last={31, 28, 31,30,31,30,31,31,30,31,30,31};

    /**
     * Indica el año con que se construye este objeto
     */
    int y=0;

    /**
     * Usado para conocer que indice tendra cada mes del año en el arreglo <code>last[]</code>
     */
    HashMap<Integer, String> mez=null;

    /**
     * Indica el mes con que se construye este objeto
     */
    int m=0;

    /**
     * Indica el primer día del mes
     */
    int first=0;

    ZCalendar(int año, int mes){

        this.set(ZCalendar.YEAR, año);
        this.set(ZCalendar.MONTH, mes);

        m=mes;

        mez=new HashMap<Integer, String>();

        y=año;

        int w=0;

        mez.put(w, "Enero"); w++;
        mez.put(w, "Febrero"); w++;
        mez.put(w, "Marzo"); w++;
        mez.put(w, "Abril"); w++;
        mez.put(w, "Mayo"); w++;
        mez.put(w, "Junio"); w++;
        mez.put(w, "Julio"); w++;
        mez.put(w, "Agosto"); w++;
        mez.put(w, "Septiembre"); w++;
        mez.put(w, "Octubre"); w++;
        mez.put(w, "Noviembre"); w++;
        mez.put(w, "Diciembre"); w++;




    }

    /**
     * Devuelve la posicion del <code>ZLabel</code> desde donde empezarán los días del mes
     */
    int getFirstDayOfMonth(){

        int d=0;

        this.set(this.DAY_OF_MONTH, this.DAY_OF_MONTH - this.DAY_OF_MONTH);

        d=this.get(this.DAY_OF_WEEK);

        d++;

        first=d;

        return d;

    }

    /**
     * Devuelve la posicion del <code>ZLabel</code> en donde terminarán los días del mes
     */
int getLastDayOfTheMonth(){

    int x=0;

    if(m==1){

        return inFeb();

    }

    if(last[m]==30){

        return in30();

    }

    if(last[m]==31){

        return in31();

    }

    return x;
   
    }

private int in30(){

    switch(first){

        case 0:
        return 29;
        case 1:
        return 30;
        case 2:
        return 31;
        case 3:
        return 32;
        case 4:
        return 33;
        case 5:
        return 34;
        case 6:
        return 35;
        case 7:
        return 36;

    }

    return 10;

}

private int in31(){

    switch(first){

        case 0:
        return 30;
        case 1:
        return 31;
        case 2:
        return 32;
        case 3:
        return 33;
        case 4:
        return 34;
        case 5:
        return 35;
        case 6:
        return 36;
        case 7:
        return 37;


    }

    return 10;

}

private int inFeb(){

    if(isBis(y)){

        switch(first){

            case 0:
            return 28;
            case 1:
            return 29;
            case 2:
            return 30;
            case 3:
            return 31;
            case 4:
            return 32;
            case 5:
            return 33;
            case 6:
            return 34;
            case 7:
            return 35;

        }

    }else{

        switch(first){

            case 0:
            return 27;
            case 1:
            return 28;
            case 2:
            return 29;
            case 3:
            return 30;
            case 4:
            return 31;
            case 5:
            return 32;
            case 6:
            return 33;
            case 7:
            return 34;


        }

    }

    return 10;

}

/**
     * Devuelve <code>true</code> si <code>x</code> es multiplo de 4
*
* @param x Representa el año que se desea saber si es bisiesto
     */
boolean isBis(int x){

        if(x%4==0){
        return true;
        }else{
        return false;
        }

    }

/**
     * Devuelve el nombre del mes correspondiente
*
* @return m El nombre del mes con el que se construye este objeto
     */
String getMonthName(){

    return mez.get(this.m);

}

/**
     * Devuelve el año correspondiente
*
* @return m El año con el que se construye este objeto
     */
String getYearName(){

    return y+"";

}

}



Saludos
#10
Hola, bueno verán, quiero mostrar un code en vbs, lo explicaré paso a paso y me gustaría saber si es posible hacer lo mismo en java

Código (vb) [Seleccionar]

set ie=createobject("internetexplorer.application")
'se crea un objeto para manipular el internetexplorer

ie.navigate("http://www.google.com")
'como podran imaginar se navega en la url dada

s=inputbox("Ingresa tu busqueda")
' se abre un cuadro de dialogo para ingresar un valor del usuario

ie.visible=true
'se hace visible la ventana del explorer

do
'ok este bucle sirve para que, si el internetexplorer se está cargando, esperar
'nada más

if ie.busy then

wscript.sleep 5000

else

exit do

end if

loop

set b=ie.document.getelementbyid("lst-ib")
'se obtiene la barra de texto de google

b.value=s
'se escribe lo que el usuario ingresó en la barra

set b2=ie.document.getelementbyid("btnG")
'se obtiene el boton "buscar con google"

b2.click()
'se hace click en el boton "buscar con google"



Existe alguna forma de hacer lo mismo con java?

Que librerías me recomiendan investigar?

De antemano, gracias  :D

Saludos  ;)
#11
Scripting / [VBS] IternetExplorer.Application
23 Julio 2011, 23:18 PM
Hola, estoi tratando de hacer un script para facebook, no es mas que un script de escritorio que abrirá la pagina y tomara un texfield y le dará un valor, bueno, estoi tratando de aprender sobre este objeto de a poko, he intentado lo siguiente:

Código (vb) [Seleccionar]


dim ie 'as object

set ie=createobject("internetexplorer.application")

ie.navigate "www.google.com"

coleccion = ie.getElementsByClass("BUTTON") 'aqui me manda un error 80004005

'bla bla bla



Quería mostrar la coleccion de nombres de objetos para saber que botones tiene google y así poder manipular otras páginas.

¿Que puedo estar haciendo mal?

De antemano, gracias  :D

Saludos  ;)
#12
Hola estaba tratando de volver al scripting con vbs, volviendo a probar el viejo metodo Object.cells(x, x) me di cuenta que no se le pueden agregar variables en windows 7, ya sea por que este haciendo algo mal o que no se xD, bueno, esto es lo que intenté:

Código (vb) [Seleccionar]


set exc=createobject("excel.application")

for x=0 to 99 step 1

exc.cells(1, x).value = "texto de prueba" 'aqui me salta error desconocido en tiempo de ejecucion
wscript.sleep 200
exc.cells(1, x).value = ""

next



De antemano, gracias  :D

Saludos  ;)
#13
Java / [Threads] wait() y notify()
14 Junio 2011, 23:43 PM
Buenas, me gustaria saber si existe alguna documentacion para seres humanos de como se usan los hilos en java xD, en teoria, se instancia un Thread y en el constructor se le pasa una nueva instancia de Runnable() sobreescribiendo el metodo run(), para iniciarlo se llama al metodo start(), suponiendo que el metodo run() ejecuta un bloque de codigo infinito (digamos un while(true) { ... } ) tendriamos un proceso llamado hilo que acompañaría a nuestro programa principal sin que este espere el return del metodo run(), ahora bien, si dentro de mi programa principal accedo al objeto que contiene el hilo y llamo al metodo suspend(); el metodo se detiene, si llamo a resume(); el hilo continua su ejecucion, mi gran duda es:

1) ¿Por que al llamar al Object.wait(); en vez de suspend(); no se produce la pausa, sino que espera alrededor de un segundo y continua?

y (Aunque es un poko obvio, sabiendo que no se produce la pausa)

2) ¿Por que al llamar al Object.notify(); me suelta IllegalMonitorStateException, siendo que anteriormente (supuestamente) se provocó una pausa en el hilo con wait();?


He buscado y he leído varias cosas pero lo uniko que consegui entender fue esto  :P, imaginate un mono tratando de descubir para que funciona una rueda, asi me siento xD.

De antemano, gracias  :D

Saludos  ;)

PD: dejo un ejemplo de lo que prové (la interface grafica la hice con un ide asi que la omitire)

Código (java) [Seleccionar]


public class hilo{

volatile int c=0;

Thread t=null;

public hilo(){

init_hilo();

}

public void init_hilo(){

t=new Thread(new Runnable(){

public void run(){

while(true){

c++;
System.out.println(c);

}

}

});

}

public static void main(String[] args){

new hilo();

try{

t.wait();

t.notify();

//si uso suspend(); y resume(); no me da problemas =/

}catch(InterruptedException ex){

}

}

}


#14
Buenas, tengo el siguiente problema con los archivos.jar

¿Como podría modificar los archivos que están compresos en el mismo jar con una aplicacion en java?

Por ejemplo, tengo mi archivo.class en una carpeta, en esa misma carpeta tengo una carpeta con archivos *.txt y la carpeta con el manifest, ok si compilo y ejecuto a nivel de linea de comandos puedo modificar el contenido de cualquier archivo.txt que esté en dicha carpeta, ahora bien, si comprimo y ejecuto el ejecutable.jar al tratar de trabajar con el directorio actual me toma el directorio donde está el .jar y no el directorio que está dentro del .jar, entonces mi duda es: ¿se puede trabajar con los archivos que están compresos dentro del .jar? ¿como?

No quisiera llegar a tener que depender de archivos externos  :-\

De antemano, gracias  :D

Saludos  ;)
#15
Scripting / [VBS] ¿Existe alguna api?
9 Mayo 2011, 04:31 AM
Buenas quería saber si existe una api de vbs como la de java, con sus sumarios de variables metodos y eso, de antemano gracias

Saludos ;)
#16
Hola, tengo intenciones de crear métodos en c++ y usarlos en java, he leído que es posible pero no se por donde empezar, sies posible que me dieron algunos nombres para empezar a googlear sería feliz  :D

De antemano gracias  :D

Saludos  ;)
#17
Software / [Pedido] Vbsedit portable
13 Abril 2011, 22:18 PM
Hola, he estado buscando y no he podido encontrar este programa, al menos no en su forma portable, si alguien me puede dar un link le estaría muy agradecido, sino es posible vbsedit cualquier "IDE" para vbs portable me sirve.

De antemano gracias

Saludos  ;)
#18
Hola, tengo un problema con lo siguiente:

Instancié tres arreglos de la siguiente forma:

int[] a = new int[9];
int[] b = new int[9];
int[] c = new int[9];

creé tres índices para los arreglos de la siguiente forma:

int ia = 0, ib = 0, ic = 0;

El problema es que si en c[ic] guardo un valor el compilador me suelta "Array required but int found "  :-\, no se que estoy haciendo mal, les dejo el código, de antemano gracias por sus respuestas  :D

Saludos  ;)

Código (java) [Seleccionar]

import javax.swing.*;

public class clase{

boolean ctp;
int[][] vec = new int[3][3];
int[] a = new int[9];
int[] b = new int[9];
int[] c = new int[9];
int ia = 0, ib = 0, ic = 0;

public clase(int ctrl){

switch(ctrl){

case 1:

sub_principal();

break;
case 2:

sub_numeros();

break;
case 3:

sub_arreglos();

 break;
case 4:

System.exit(0);

 break;

}

}

public static void Main(String[] args){

}

void sub_principal(){

ctp=true;

while(ctp){

int m = Integer.parseInt(JOptionPane.showInputDialog(null, "1- Ingresar una frase para contar sus caracteres \n\n 2- Ingresar un Nombre para mostrar en minúsculas o mayúsculas \n\n 3- Volver \n\n 4- Salir"));

switch(m){

case 1:

String frase = JOptionPane.showInputDialog(null, "Ingrese una frase");

JOptionPane.showMessageDialog(null, "La frase tiene " + frase.length() + " caracteres");

 break;
case 2:

String nombre = JOptionPane.showInputDialog(null, "Ingrese un nombre");

JOptionPane.showMessageDialog(null, nombre.toUpperCase());

 break;
case 3:

ctp=false;

 break;
case 4:

new clase(4);

 break;

}

new clase(1);

}

}

void sub_numeros(){

ctp=true;

while(ctp){

int s = Integer.parseInt(JOptionPane.showInputDialog(null, "1- Ver si el numero es primo \n\n 2- Ver si el numero es perfecto \n\n 3- Calcular MCM entre dos numeros \n\n 4- Volver 5- Salir"));

switch(s){

case 1:

int op = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el numero"));

if (esPrimo(op)){

JOptionPane.showMessageDialog(null, s + "Es primo");

}else{

JOptionPane.showMessageDialog(null, s + "No es primo");

}

  break;
case 2:

int op2 = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el numero"));

if (esPerfecto(s)){

JOptionPane.showMessageDialog(null, s + "Es perfecto");

}else{

JOptionPane.showMessageDialog(null, s + "No es perfecto");

}

  break;
case 3:

JOptionPane.showMessageDialog(null, "Aun no implementada XD");

  break;
case 4:
 
ctp=false;

  break;
case 5:

new clase(4);

  break;

}

new clase(1);

}

}

void sub_arreglos(){

ctp=true;

while(ctp){

int in = Integer.parseInt(JOptionPane.showInputDialog(null, "1- Ingresar numeros para la matriz \n\n 2- Volver \n\n 3-Salir"));

switch (in){

case 1:

int c=1;

for (int x=0;x<3;x++){

 for (int y=0;y<3;y++){
 
 vec[x][y] = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese numero " + c));
 c++;
 
 if(vec[x][y]%2==0){
 
 a[ia] = vec[x][y];
 ia++;
 
 }else if (vec[x][y]%2!=0){
 
 b[ib] = vec[x][y];
 ib++;
 
 }
 
 if (vec[x][y]<0){
 
 c[ic] = vec[x][y];
 ic++;
 
 }
 
 }

}

String pares="";

for (int valor:a){

pares += "[" + Integer.toString(valor) + "]";

}

JOptionPane.showMessageDialog(null, "Los numeros pares son \n\n" + pares);

String impares="";

for (int valor:a){

impares += "[" + Integer.toString(valor) + "]";

}

JOptionPane.showMessageDialog(null, "Los numeros impares son \n\n" + impares);

String negativos="";

for (int valor:a){

negativos += "[" + Integer.toString(valor) + "]";

}

JOptionPane.showMessageDialog(null, "Los numeros negativos son \n\n" + negativos);

break;

case 2:

ctp = false;

   break;
case 3:

new clase(4);

   break;
 
 }

  }
 
 new clase(1);
 
}

boolean esPrimo(int p){

int c;

for (int x=p;x>0;x--){

if (p%x==0){

c++;

}

}

if (c==2){

return true;

}else{

return false;

}

}

boolean esPerfecto(int p){

int res=0;

   for(int y=1;y<=p/2;y++){

       if (p%y==0){

           res = res + y;

       }

   }
   
   if (res == p) {

           return true;

       }else{

           return false;

       }

   }

}
#19
Hola, tengo el siguiente script, en windows xP me funka bien, en windows 7 se vuelve loko  :-\, básicamente crea una planilla de excel para un ciber café, usa excel.application para crear la primera parte de la planilla, y luego copio el resto con wscript.shell.sendkeys, uso tiempos entre las pulsaciones de teclas para que no se me caiga el script (y de paso excel, porque me ha pasado), bueno les dejo el script:

Código (vb) [Seleccionar]


set exc=createobject("excel.application")
set wss=createobject("wscript.shell")

exc.visible = true

' preparando el archivo

set ambiente = exc.workbooks.add()
wss.sendkeys "+({f11})"
wscript.sleep 200
wss.sendkeys "+({f11})"
wscript.sleep 200
wss.sendkeys "+({f11})"
wscript.sleep 200
wss.sendkeys "+({f11})"
wscript.sleep 200

'preparando la hoja PCs

set fecha1 = exc.range("B2")
fecha1.interior.colorindex = 28
fecha1.formula = "Ingrese fecha"
fecha1.borders.colorindex = 1

set fecha2 = exc.range("C2")
fecha2.interior.colorindex = 28
fecha2.borders.colorindex = 1
fecha2.formula = "01-01-2012"
fecha2.select
wss.sendkeys "{f2}"
wss.sendkeys "{enter}"

set fecha3 = exc.range("C8")
fecha3.interior.colorindex = 28
fecha3.borders.colorindex = 1
fecha3.formula = "=C2+1"
fecha3.select
wss.sendkeys "{f2}"
wss.sendkeys "{enter}"

set rango1 = exc.range("C10:H10")

rango1.interior.colorindex = 1
rango1.font.colorindex = 4
rango1.font.bold = true

exc.range("c10").formula = "PC 1"
exc.range("d10").formula = "PC 2"
exc.range("e10").formula = "PC 3"
exc.range("f10").formula = "PC 4"
exc.range("g10").formula = "PC 5"
exc.range("h10").formula = "PC 6"

set rango2 = exc.range("C11:h19")
rango2.interior.colorindex = 15
rango2.borders.colorindex = 1

set rangof = exc.range("C20:H20")

rangof.interior.colorindex = 28
rangof.borders.colorindex = 1
rangof.select

set f1 = exc.range("C20")
f1.formula = "=suma(C11:C19)"
f1.select
wss.sendkeys "{f2}"
wss.sendkeys "{enter}"
wscript.sleep 666
wss.sendkeys "{up}"
wss.sendkeys "^(c)"
wss.sendkeys "+({right})"
wss.sendkeys "+({right})"
wss.sendkeys "+({right})"
wss.sendkeys "+({right})"
wss.sendkeys "+({right})"
wss.sendkeys "{enter}"

wscript.sleep 200

set total = exc.range("H22")
total.formula = "=suma(C11:H19)"
total.select
wss.sendkeys "{f2}"
wss.sendkeys "{enter}"
' -------------------------
'copiando el cuadro al resto de la hoja

set stotal = exc.range("G22")
stotal.formula = "Total"

set rango3 = exc.range("C8:H22")
rango3.select
wss.sendkeys "^(c)"

dim control
control=1

' bajar 16 y pegar

do

for i=1 to 20 step 1

wss.sendkeys "{down}"
 if control = 32 then
    exit do
 end if
next

wss.sendkeys "^(v)"
wscript.sleep 200
control = control + 1
loop

exc.columns("B").entirecolumn.autofit

' eso, el resto está listo para pasar a la siguiente hoja
for x=8 to 628 step 20

if x>8 then
resta= x-20
exc.cells(x, 3).formula = "=C"&resta&"+1"
exc.cells(x, 3).select
wss.sendkeys "{f2}"
wss.sendkeys "{enter}"
wscript.sleep 200
end if

fecha2.formula = ""

next

exc.range("C8").formula = "=C2"
exc.range("c8").select
wss.sendkeys "{f2}"
wss.sendkeys "{enter}"

'*****************************************
'*****************************************
'             SEGUNDA HOJA
'*****************************************
'*****************************************

wss.sendkeys "^{pgdn}"



De antemano gracias  por sus respuestas :D

Saludos  ;)
#20
Hola, tenía ganas de ejecutar un archivo HTML en el momento en que se abra una pestaña en google chrome o en mozilla, ¿existe algún comando externo para DOS que cierre una pestaña en el momento que se abre/ejecuta?, ¿si no es así, existe alguna librería en vbs para esto? la idea es cerrar la página correspondiente y ejecutar un HTML, si es posible hacer esto podré empezar con mi code.

De antemano gracias  :D

Saludos  ;)

#21
Holas, una vez vi un codigo que usaba more y volcaba un archivo.txt a debug.exe, el archivo contenía instrucciones en hexadecimal, intenté hacer lo siguiente, pero algo estoi haciendo mal:

Código (dos) [Seleccionar]

more archivo.txt | debug


El archivo.txt contiene:


e97 98
nasds.bat
rcx
129
w
q




Donde "e" ordena cargar los caracteres "a" y "b" respectivamente en hexadecimal, "n" ordena escribir el archivo asds.bat con el contenido especificado, rcx especifica el tamaño del archivo (ni idea cual deba ser el tamaño correcto, sólo vi un bat de ejemplo por ahí y lo seguí), "w" confirma la escritura y "q" sale del debug.exe segun mi "investigación", bueno también intenté volcarlo así:

Código (dos) [Seleccionar]

debug < archivo.txt


La salida que obtuve en ambos casos fue la siguiente:


㈠渾汵䀊琨瑩敬䔣琇䘣


Bueno, en el archivo.bat se ven unos cuadraditos, akí se ven letras chinas, WTF? LOL? xD?, bueno, ese es mi problema, de antemano gracias por sus respuestas.

Saludos  ;)
#22
Buenas, tengo el siguiente problema;

Con NetBeans IDE 6.8 en un Windows XP, mi aplicacion corría bien, descargué un conjunto de librerías desde esta pagina creé una librería en NetBeans de la forma regular (sry ahora no recuerdo cual era, pero lo hacía con el conector MYSQL y funcionaba), el caso es que dejé mi código fuente hasta cierto punto, pero ahora estoi en un PC que no tiene este IDE, es un Windows XP también, opté por realizar lo siguiente;

Tomé todas las librerías y las copié en el siguiente directorio;

(JDK)\jre\lib\ext\(...)

Según dicen que me las debería tomar, ok, haciendo esto el archivo rep.java compila y queda como un .class, pero al ejecutarlo me lanza la siguiente excepcion;

C:\Documents and Settings\usolibre\Escritorio>java rep>asds.txt
Exception in thread "main" java.lang.NoClassDefFoundError: javazoom/jlgui/basicp
layer/BasicPlayerListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Caused by: java.lang.ClassNotFoundException: javazoom.jlgui.basicplayer.BasicPla
yerListener
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 12 more
Could not find the main class: rep.  Program will exit.

C:\Documents and Settings\usolibre\Escritorio>

Entonces mi duda es, ¿algo me falta a mi hacer que el netbeans hace o mi programa tiene problemas? dejo lo poko y nada que tengo hecho hasta ahora;

Código (java) [Seleccionar]

import java.io.File;
import java.util.Map;
import java.io.File.*;

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

import javazoom.jlgui.basicplayer.BasicController;
import javazoom.jlgui.basicplayer.BasicPlayer;
import javazoom.jlgui.basicplayer.BasicPlayerEvent;
import javazoom.jlgui.basicplayer.BasicPlayerException;
import javazoom.jlgui.basicplayer.BasicPlayerListener;

public class rep extends JFrame implements BasicPlayerListener, ActionListener{

    private JButton b1, b2, b3, b4, b5, b6, b7, b8,b9, b10;
    private JLabel l1, l2, l3, l4, l5, l6, l7, l8, l9, l10;
    private JFileChooser sel;

    public rep(){

        setSize(700, 500);
        setLocation(200, 50);
        setTitle("title");

        Container panel = getContentPane();
        panel.setLayout(new GridBagLayout());
        panel.setBackground(Color.black);


        b1 = new JButton("Abrir...>>");
        l1 = new JLabel("<html><H1><FONT COLOR=GREEN>Titulo por defecto</FONT><H1>");

        GridBagConstraints size1 = new GridBagConstraints();

        size1.gridx = 0;
        size1.gridy = 0;
        size1.gridheight = 1;
        size1.gridwidth = 1;
        size1.weightx = 0.0;
        size1.weighty = 0.0;
        size1.fill = size1.NONE;
        size1.anchor = size1.CENTER;

        panel.add(l1, size1);

        GridBagConstraints size2 = new GridBagConstraints();

        size2.gridx = 0;
        size2.gridy = 1;
        size2.gridheight = 1;
        size2.gridwidth = 1;
        size2.weightx = 0.0;
        size2.weighty = 0.0;
        size2.fill = size1.NONE;
        size2.anchor = size1.CENTER;

        panel.add(b1, size2);
        b1.addActionListener(this);



       

        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
       
    }

public static void main(String[] args){

    new rep();

}


public void actionPerformed(ActionEvent click){

    if (click.getSource() instanceof JFileChooser){

        // para el showopen

        JOptionPane.showMessageDialog(null, "funka");

    }

    if (click.getSource() instanceof JButton){

        // para los botones

        JButton b0 = (JButton) click.getSource();

        JRootPane panel0 = b0.getRootPane();

        JFrame frame0 = (JFrame) panel0.getParent();

        String prompt0 = b0.getText();

        if (prompt0.equals("Abrir...>>")){

            abrir();
           
        }

    }

}

public void abrir(){
       
        sel = new JFileChooser();
        sel.addActionListener(this);

        sel.setCurrentDirectory(new File(System.getProperty("user.dir")));

        sel.showOpenDialog(null);

}

public void setController(BasicController ctrl){

}

public void stateUpdated(BasicPlayerEvent chg){

}

public void progress(int Vint, long Vlong, byte[] Vbyte, Map Vmap){

}

public void opened(Object Vob, Map Vmap2){

}



}


De antemano gracias por sus respuests  :D

Saludos  ;)
#23
Java / Como crear un paquete jar?
31 Diciembre 2010, 02:05 AM
Hola vi en el faq como hacer un paquete en java, hice mi manifest así:

Manifest-Version: 1.0
Ant-Version: 1.0
Created-By: xxxx
Extension-Name: avg.class
Specification-Title: lib
Implementation-Title: lib
Implementation-Vendor: xxxx
Implementation-Version: 1.0
Implementation-Vendor-Id: .
X-Compile-Source-JDK: 1.5
X-Compile-Target-JDK: 1.5

En todo caso lo que yo quiero hacer es un autoejecutable, intenté esto pero no creo que es lo que me serviría, y viendo tutoriales por ahí traté de hacerlo con comandos, bueno he visto en un par de post por ahí buscando en google y he intentado lo siguiente:

Código (dos) [Seleccionar]

jar -cvf test.jar avg.class


también esto:

Código (dos) [Seleccionar]

jar -cmf Manifest.txt F_tets.jar Main.class


Un par de veces me lanzaba una excepcón que ya no recuerdo que decía, así que opté por modificar el nombre a Main.class, no se si eso influye...

Opté por modificar el manifest por esto según vi por ahí en la inet:


Main-Class: Main



Antes por supuesto decía


Main-Class: avg


Con doble click no se abre el .jar, con abrir > Java (TM) Platform SE Binary tampoko
con

Código (dos) [Seleccionar]

java -jar test.jar     ni con       java -jar Main.jar


De verdad que esto me supera, que estoy haciendo mal?

De antemano gracias  ;)

Edito:

este es el error:

Código (dos) [Seleccionar]

C:\Documents and Settings\usolibre\Escritorio>jar -cfm test.jar Main.class Manif
est.txt >> error.txt
java.io.IOException: invalid header field
       at java.util.jar.Attributes.read(Attributes.java:389)
       at java.util.jar.Manifest.read(Manifest.java:167)
       at java.util.jar.Manifest.<init>(Manifest.java:52)
       at sun.tools.jar.Main.run(Main.java:123)
       at sun.tools.jar.Main.main(Main.java:903)

C:\Documents and Settings\usolibre\Escritorio>

#24
Java / [JAR] duda con ¿instalacion?
23 Noviembre 2010, 23:43 PM
Buenas, hace poco que entré en el mundo de la programacíon con java, estoi haciendo una tarea y necesito saber ¿como agrego al jdk un jar que tengo ( driver mysql-java ) sin usar un ide?, trabajo en windows xp y necesito saber esto por que en las salas de uso libre de mi instituto no puedo instalar ningún  ide, de antemano muchas gracias por sus respuestas.  :D
#25
Scripting / [VBS] Duda con wscript.shell.appactivate
10 Noviembre 2010, 22:25 PM
Mi duda es la siguiente, quiero dejar un código de muestra en un foro, mostrando el uso de este objeto, el tema es que lo estuve probando y si abro un bloc de notas con .exec y luego lo minimizo, no puedo obtener el foco de la ventana, el código de muestra es éste:            

Código (vb) [Seleccionar]

set wss=createobject("wscript.shell")

set bloc=wss.exec("notepad")
msgbox "minimiza si quieres el bloc de notas, en 5 segundos mas se maximizara (para este ejemplo no lo cierres)"
wscript.sleep 5000
wss.appactivate bloc.processid
wss.sendkeys "funciona"


¿que estoy haciendo mal?

de antemano, gracias

[publicidad mode:on] ................  PD: y el foro es éste............[/subliminal]
#26
Buenas, hace un tiempo que estoi investigando el vbs y quiero aprender a manejar el objeto excel.application, para lo cual quiero hacer un script que automáticamente cree una hoja de excel según las peticiones que haga un usuario, mi pregunta es ¿como ennegrecer los bordes de una celda (o un grupo de celdas) con algún método de este objeto?, o si es posible hacerlo con pulsaciones de teclado (para sendkeys).

De antemano gracias por responder

Saludos!