Minimizar aplicación Java al Traybar

Iniciado por luchi, 13 Septiembre 2015, 16:01 PM

0 Miembros y 1 Visitante están viendo este tema.

luchi

Hola.
¿Algún código sencillo para minimizar una aplicación Java al Traybar? He buscado varios pero al añadirle otros elementos que no tienen que ver con ello, me hago un lío. Lo que quiero es que al pulsar sobre un JButtom se minimice a la bandeja. Si pasa el usuario el ratón por encima salga un mensaje. Gracias a un Timer, la ventana aparece sola al cabo de un tiempo, así que no hace falta ni cerrar la aplicación, ni maximizarla. Gracias.

0roch1

Cóloca el código que tienes y aquí te ayudamos a dar solución a cada parte.

luchi

Bueno, aunque os podeís hacer una idea con él, no os va a servir ya que he desechado la idea de hacerlo en éste proyecto, pero sí me interesa saber cómo es el código para tenerlo en futuros proyectos, ya que lo que hay por internet lo mezcla todo y no me aclaro del todo.

Código (java) [Seleccionar]
package controltiempo;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.Timer;
import java.applet.AudioClip;


class Ventana extends JFrame{
    private JFrame frame;
    protected JButton boton;
    private JLabel informacion;
    public void abrir_ventana(String texto){
            setTitle("Controlador de tiempo");
            setBounds(500,100,400,200);
            setLocationRelativeTo(null);
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            boton=new JButton("Aceptar");
            boton.setBounds(135,90,130,50);
            setLayout(null);
            informacion=new JLabel(texto);
            informacion.setBounds(60,-50,300,200);
            add(boton);
            add(informacion);
            setResizable(false);
            setVisible(true);
       
    }
}

class Sonido{
    public void reproduciendo(){
        AudioClip sonido;
        sonido=java.applet.Applet.newAudioClip(getClass().getResource("/controltiempo/WindowsNotifyMessaging.wav"));
        sonido.play();
    }
}


public class ControlTiempo{
   
    public static void main(String[] args) {
        Sonido s1=new Sonido();
        Ventana v1=new Ventana();
        v1.abrir_ventana("Le avisaré cuando deba tomarse un descanso");
        s1.reproduciendo();
        v1.boton.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
            v1.setExtendedState(JFrame.ICONIFIED);
            v1.setVisible(false);
        Timer time=new Timer(7200000, new ActionListener(){
            public void actionPerformed(ActionEvent b){
                Ventana v2=new Ventana();
                v2.abrir_ventana("Descanse del ordenador 10 minutos");
                s1.reproduciendo();
                v2.boton.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent c){
                   v2.setExtendedState(JFrame.ICONIFIED);
                   v2.setVisible(false);
                   Timer time2=new Timer(600000, new ActionListener(){
                    public void actionPerformed(ActionEvent h){
                        Ventana v3=new Ventana();
                        v3.abrir_ventana("Puede volver a trabajar. ¡Que le cunda!");
                        s1.reproduciendo();
                        v3.boton.addActionListener(new ActionListener(){
                            public void actionPerformed(ActionEvent l){
                                v3.setVisible(false);
                                v1.setExtendedState(JFrame.NORMAL);
                                v1.setVisible(true);
                            }
                        });
                    }
                  });
                 time2.start();
                 time2.setRepeats(false);
                }
                });
            }
        });
        time.start();
        time.setRepeats(false);
          }
        });   
    }
}