Mostrar Mensajes

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - juanpe77

Pages: [1] 2 3 4
1
Java JSE / Re: POS 58
« on: Marzo 16, 2015, 10:28:16 pm »
Ya he hallado la solución al problema.
Nada más sencillo que usar ireport.
El que lo necesite que pregunte por aquí. Le contestaré gustósamente.
Un saludo.

2
Java JSE / POS 58
« on: Marzo 03, 2015, 11:11:25 pm »
Buenas tardes.
Acudo nuevamente a ustedes a ver si pudieran resolver el problema que presento.
Para la impresión de tickets tengo una impresora de tickets POS58. Estoy intentando imprimir el símbolo €. Pero no lo he conseguido.
He usado código ascii, he usado este código:
String cadena="\u20AC";
byte[] euro=cadena.getBytes();
La cadena "\u20AC" sólo y no aparece el símbolo del Euro, ni parecido, sale un carácter extraño.
¿Qué posibles soluciones hay?
Un saludo.

3
Java JSE / Re: Problemas Thread
« on: Marzo 02, 2015, 03:08:21 am »
Buenas tardes.
Los dos dispose() los hago después de la condición if(window.isShowing()). Aún no he cerrado ninguna ventana y aún así no entra en la condición.
De acuerdo crearé el jdialog con el padre principal, el JFrame.
Gracias por la ayuda.
Comentaré si sale correctamente.
Un saludo.

4
Java JSE / Re: Problemas Thread
« on: Marzo 02, 2015, 02:34:43 am »
Buenas tardes.
El JDialog está visible.
¿Qué estoy haciendo mal? No lo entiendo, porque la clase Window recoge los JFrame y JDialog. Es su "padre". No sé...esto me está ofuscando bastante.
Un saludo.

5
Java JSE / Re: Problemas Thread
« on: Marzo 01, 2015, 11:03:40 am »
Buenas.
He realizado un debuger y cuando pone en la variable(window) JDialog, no pasa la condición.
Si pasa la condición cuando declaro así: JDialog Agenda = new javax.swing.JDialog(this.getOwner());
¿Qué estoy haciendo mal?
Un saludo.

6
Java JSE / Re: Problemas Thread
« on: Marzo 01, 2015, 05:43:33 am »
Buenas.
Realizo esto:JDialog Agenda=new javax.swing.JDialog(this.getOwner());
Sólo de esta manera pasa la condición if del loop:
for (Window window : Window.getWindows()) {
        if(window.isShowing())
        {
         //añadimos elementos a la lista 
         
         ventana.add(window);
       
        }
Los JDialog creados normalmente: JDialog d = new javax.swing.JDialog();. No pasan la condición if dentro del loop.
Me encuentro con este problema.
Un saludo.

7
Java JSE / Re: Problemas Thread
« on: Marzo 01, 2015, 01:10:18 am »
Buenas de nuevo.
Se me olvidaba comentarte que cuando:
static   Timer timer = new Timer (1000, new ActionListener ()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        tiempo++;
 
if(tiempo == 60){//60 segundos

        //lo que sucede a los 60 segundos
   
    Login l = new Login();
   
    //Limpiamos de basura
    System.gc();
   
    if(almacenamiento)
    {
       
      //primero borramos los elementos de la lista
        ventana.clear();
       
    for (Window window : Window.getWindows()) {
       
        if(window.isShowing())<--------Si es JDialog no entra en la condición,sólo si es JFrame o una JDialog instanciado como ventana
        {
       
         //añadimos elementos a la lista
         
         ventana.add(window);
       
        }
       else
        {
            window.dispose();
        }     
       
        window.dispose();
    }
   
    codigointroducido=codigousuario;   
   
    almacenamiento=false;
    }
    else
    {   
    //con este bucle cerramos todas las ventanas abiertas
    for ( Window window : Window.getWindows()) {
     
        //comprobamos que la ventana está abierta
        if(window.isVisible())
        {
        window.dispose();
        }
    }
   
    }
    //mostramos la pantalla de inicio
    l.setVisible(true);
   
    l=null;
   
    timer=null;
   
    Runtime runtime = Runtime.getRuntime();
   
    runtime.gc();
   
    runtime.runFinalization();
     
}
    }     
    });

Con este método quiero almacenar las últimas ventanas abiertas en el arraylist. Para posteriormente mostrarlas.
Creo que el problema reside en la condición if que te señalo, ¿que condición debería poner?
Un saludo.

8
Java JSE / Re: Problemas Thread
« on: Febrero 28, 2015, 10:44:04 pm »
Que alegría me das volver a verte por aquí.
Al final he realizado esto:
public class Login extends javax.swing.JFrame {
static ArrayList<Window>ventana=new ArrayList<Window>();
En el método timer:
static   Timer timer = new Timer (1000, new ActionListener ()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        tiempo++;
 
if(tiempo == 60){//60 segundos

        //lo que sucede a los 60 segundos
   
    Login l = new Login();
   
    //Limpiamos de basura
    System.gc();
   
    if(almacenamiento)
    {
       
      //primero borramos los elementos de la lista
        ventana.clear();
       
    for (Window window : Window.getWindows()) {
       
        if(window.isShowing())
        {
       
         //añadimos elementos a la lista 
         
         ventana.add(window);
       
        }
       else
        {
            window.dispose();
        }     
       
        window.dispose();
    } 
   
    codigointroducido=codigousuario;   
   
    almacenamiento=false;
    }
    else
    {   
    //con este bucle cerramos todas las ventanas abiertas
    for ( Window window : Window.getWindows()) {
     
        //comprobamos que la ventana está abierta
        if(window.isVisible())
        {
        window.dispose();
        }
    }
   
    }
    //mostramos la pantalla de inicio
    l.setVisible(true);
   
    l=null;
   
    timer=null;
   
    Runtime runtime = Runtime.getRuntime();
   
    runtime.gc();
   
    runtime.runFinalization();
     
}
    }     
    });

Y el método mediante el cuál accedemos a la ventana que el usuario se ha quedado:

if(codigointroducido.equals(contrasena))
        {
            //limpiamos el código almacenado y la variable booleana almacenamiento pasa a ser verdadera
            codigointroducido=null;
           
            almacenamiento=true;
             
             dispose();
           
           for(Window i:ventana)
           {
               i.setAlwaysOnTop(true);
               i.setVisible(true);
           }
           

        }
Me sucede lo siguiente:
1.Aún siendo un arraylist,me continua guardando sólo los JFrame.
2.Los JDialog están visibles además de los JFrame, no sé si repercutirá en que no se guarden.
3.La solución que le he dado por ahora es al crear el jdialog lo instancio de la siguiente manera:
    -JDialog agregarcita = new javax.swing.JDialog(getOwner());
De esta manera si consigo que se guarden los JDialog y los JFrame.

No creo que sea la solución más adecuada para esto,pero bueno. Tampoco entiendo porque no se guardan los jdialog y los jframe.
Un saludo y gracias.

9
Java JSE / Re: Problemas Thread
« on: Febrero 23, 2015, 11:33:00 pm »
¿Alguna solución al problema que me surge?
No me guarda los jdialog la variable ww(Window).¿Qué debo hacer?
Un saludo.

10
Java JSE / Re: Problemas Thread
« on: Febrero 23, 2015, 03:03:27 am »
Hola.
Has contestado antes de mi modificación del post.
Funciona con los jframes, con los jdialog no los guarda. No lo entiendo, el jdialog es parte de Window. Debería almacenarse.¿O no?
Un saludo.

11
Java JSE / Re: Problemas Thread
« on: Febrero 23, 2015, 02:53:00 am »
No conseguido implemntar Window.getFocusOwner(),lo he realizado de la siguiente manera:

1.He creado varias variables globales,dentro de la clase principal:
   
    static boolean almacenamiento=true;//variable booleana que con ella comprobamos si almacenamos la ventana o no
   
    static String codigousuario="",codigointroducido="";//variables string para controlar el código de usuario introducido
 
    static Window ww;//ventana que guardamos la última ventana activa



2.En la función timer,de cierre de sesión, he programado este código:
static   Timer timer = new Timer (1000, new ActionListener ()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        tiempo++;

             
if(tiempo == 60){//60 segundos

        //lo que sucede a los 60 segundos
    timer.stop();
   
    Login l = new Login();//clase principal,la he designado dicho nombre
   
    //Limpiamos de basura
    System.gc();
    if(almacenamiento)
    {
      //con este bucle ocultamos las ventanas
    for (Window window : Window.getWindows()) {
       
        if(window.isShowing())//si la ventana se está mostrando la guardamos
        {
       
        ww=window;   
           
        window.setVisible(false);
        }
        else
        {   
        window.dispose();
        }
       
    } 
   
    codigousuario=codigointroducido;   
   
    almacenamiento=!almacenamiento;
   
   
    }
    else
    {   
    //con este bucle cerramos todas las ventanas abiertas
    for ( Window window : Window.getWindows()) {
     
        //comprobamos que la ventana está abierta(¿esto es a lo que te referías para controlar que no borren las ventanas ocultas?)
        if(window.isVisible())
        {     
        window.dispose();
        }
    }
   
    }
    //mostramos la pantalla de inicio
    l.setVisible(true);
   
    l=null;
   
    timer=null;
   
    Runtime runtime = Runtime.getRuntime();
   
    runtime.gc();
   
    runtime.runFinalization();
     
}
    }     
    });

3.Para acceder a las diferentes ventanas dentro de la aplicación:

if(codigointroducido.equals(pass))
        {
           
             almacenamiento=!almacenamiento;
               
             ww.setVisible(true);
             
             dispose();
             
             
        }
       
       
        //ventanas para administradores
        else if(cap.equals("Administrador"))
        {
            t.dispose();
            PantallaPrincipalAdmin ppA=new PantallaPrincipalAdmin(nombreusuario,idusuario);
            ppA.setVisible(true);
            codigointroducido=pass;//recogemos el código introducido por el usuario
            dispose();
                     
        }
       
       
       
        //ventanas para dependientes
        else if(cap.equals("Dependiente"))
        {
           
            t.dispose();
            PantallaPrincipalDependiente ppU=new PantallaPrincipalDependiente(nombreusuario,idusuario);
            ppU.setVisible(true);
            codigointroducido=pass;//recogemos el código introducido por el usuario
            dispose();
           
        }
        //ventanas para tatuadores
        else if(cap.equals("Tatuador"))
        {
           
           
            t.dispose();
            PantallaTatuador ppU=new PantallaTatuador(nombreusuario,idusuario);
            ppU.setVisible(true);
            codigointroducido=pass;//recogemos el código introducido por el usuario
            dispose();
           
           
        }
     
        else if(!cap.equals("Administrador") &&  !cap.equals("Dependiente") && !cap.equals("Tatuador"))
        {   
            JOptionPane.showMessageDialog(null,"Error en la contraseña");
         
        }
        }

¿Qué opinión tienes de este código?¿Se puede mejorar?¿Hay fallos?
Me respondo a mi mismo,si hay fallos. En la variable ww no se almacena los jdialog.
No entiendo porque no almacena los jdialog...¿Qué debo realizar para resolver este fallo?
Un saludo.

12
Java JSE / Re: Problemas Thread
« on: Febrero 22, 2015, 06:14:13 am »
Buenos días.
Ya tengo el codigo que necesitaba, sólo necesito pulirlo:

static   Timer timer = new Timer (1000, new ActionListener ()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        tiempo++;

             
if(tiempo == 60){//60 segundos

        //lo que sucede a los 60 segundos
    timer.stop();
   
    Login l = new Login();
   
    //Limpiamos de basura
    System.gc();
   
    if(almacenamiento)//variable booleana static, con la intención de comprobar si ya hay ventanas ocultas, en caso de que no las haya entra enla condición
    {
      //con este bucle ocultamos las ventanas
    for (Window window : Window.getWindows()) {
       
       
       
        window.setVisible(false);
       
       
       
    } 
    //intento recoger las ventanas que están ocultas
    ventanas=Window.getWindows();
   
    codigousuario=codigointroducido;//recogo el código de usuario el cual se le ha quedado las ventanas ocultas
   
    almacenamiento=!almacenamiento;//indico que la variable booleana ya no es verdadera,ahora es falsa
   
    }
    //si almacenamiento es falso, cierro todas las ventanas
    else
    {   
    //con este bucle cerramos todas las ventanas abiertas
    for ( Window window : Window.getWindows()) {
       
        window.dispose();
       
    }
   
    }
    //mostramos la pantalla de inicio
    l.setVisible(true);
   
    l=null;
   
    timer=null;
   
    Runtime runtime = Runtime.getRuntime();
   
    runtime.gc();
   
    runtime.runFinalization();
     
}
    }       
    });

//En el inicio de sesión


//la variable pass es lo recogido del jtextfieldpassword
//si es el mismo código,quiero mostrar las ventanas que estaban ocultas
if(codigointroducido==pass)
        {
           
            for(Window window:ventanas)
            {
               
               window.setVisible(true);
               
            }
           
        }

Fallos que encuentro:
1.En caso de que almacenamiento sea falso,me va a cerrar las ventanas que tengo ocultas.¿Qué debo hacer para evitarlo?
2.No quiero guardar todas las ventanas abiertas,únicamente la última ventana en la que se quedó el usuario.¿Cómo puedo resolver esto?

13
Java JSE / Re: Doble click en jTable (jFrame NetBeans)
« on: Febrero 22, 2015, 03:36:25 am »
Prueba con este código:
mytable.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
if(e.getClickCount()==2){
. . .
. . .
}
}
});
Un saludo.

14
Java JSE / Re: Problemas Thread
« on: Febrero 21, 2015, 11:21:04 pm »
Gracias por la respuesta y la solución que me describes. Muchas gracias, me ha servido de bastante ayuda.
¿Sería posible también realizarlo de esta forma que te describo a continuación?
Dejar en la clase principal el método timer, en dicho método recoga el jframe en el que se encontraba el usuario. Lo deje oculto. Y cuando el usuario en el cual se encontraba en ese JFrame inicie sesión,se le muestre por pantalla.
Y sólo se pueda guardar una vez el registro del jframe.
Muchas gracias por tu ayuda, un saludo.

15
Java JSE / Re: Problemas Thread
« on: Febrero 18, 2015, 12:08:08 am »
Lamento volver a molestar.
Te comento:
He realizado lo que tú me has sugerido. Funciona hasta cierto punto.
Cuando llega al método Timer, ya conocido, no puedo ponerle el dispose(). Motivo: non-static method dispose() cannot be referenced from a static context.
Esto me supone un problema,ya que la clase que debe cerrarse por inactividad no lo hace y no quiero ocultarla, quiero cerrarla.

Además con esto me crea otro problema, en lo referente a este tema:http://foro.chuidiang.com/java-j2se/visualizacion-de-jframe-y-jdialog/ ¿Cómo guardo la información que se le ha insertado de esa clase en la qué está en ese momento?

Adjunto código:

¡CLASE PRINCIPAL CON MAIN!

static int tiempo=0;

public Login() {
       
        initComponents();

}

static Timer timer = new Timer (1000, new ActionListener ()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        tiempo++;
       
if(tiempo == 60){//60 segundos

        //lo que sucede a los 60 segundos
   
    timer.stop();
   
    Login l = new Login();
     
    l.setVisible(true);
   
    l=null;
   
    timer=null;
   
    Runtime runtime = Runtime.getRuntime();
   
    runtime.gc();
   
    runtime.runFinalization();
   
//    dispose();<--Problema señalado
 
     }

    }     
   
   
    });
   
   
    public static void main(String args[]) {
       
      timer.start();
         
    Login empezar = new Login();
   
    empezar.setVisible(true);
   
    empezar=null;
   
    //Ejecutamos el recolector de basura
   
    Runtime runtime = Runtime.getRuntime();
   
    runtime.gc();
   
    runtime.runFinalization();
       
     /*   java.awt.EventQueue.invokeLater(new Runnable() {
           
            public void run() {
                new Login().setVisible(true);
            }
        });*/
   
    Toolkit.getDefaultToolkit().addAWTEventListener(
           
        new AWTEventListener() {
       
        @Override
        public void eventDispatched(AWTEvent event) {
           
       tiempo=0;
        }
    },AWTEvent.WINDOW_FOCUS_EVENT_MASK+AWTEvent.MOUSE_MOTION_EVENT_MASK+AWTEvent.MOUSE_WHEEL_EVENT_MASK+AWTEvent.MOUSE_EVENT_MASK);
    }

Pages: [1] 2 3 4
ey