Foro de elhacker.net

Programación => Java => Mensaje iniciado por: luchi en 13 Septiembre 2015, 16:01 pm



Título: Minimizar aplicación Java al Traybar
Publicado por: luchi en 13 Septiembre 2015, 16:01 pm
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.


Título: Re: Minimizar aplicación Java al Traybar
Publicado por: 0roch1 en 15 Septiembre 2015, 21:13 pm
Cóloca el código que tienes y aquí te ayudamos a dar solución a cada parte.


Título: Re: Minimizar aplicación Java al Traybar
Publicado por: luchi en 16 Septiembre 2015, 14:57 pm
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
  1. package controltiempo;
  2. import javax.swing.*;
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import java.util.*;
  6. import javax.swing.Timer;
  7. import java.applet.AudioClip;
  8.  
  9.  
  10. class Ventana extends JFrame{
  11.    private JFrame frame;
  12.    protected JButton boton;
  13.    private JLabel informacion;
  14.    public void abrir_ventana(String texto){
  15.            setTitle("Controlador de tiempo");
  16.            setBounds(500,100,400,200);
  17.            setLocationRelativeTo(null);
  18.            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  19.            boton=new JButton("Aceptar");
  20.            boton.setBounds(135,90,130,50);
  21.            setLayout(null);
  22.            informacion=new JLabel(texto);
  23.            informacion.setBounds(60,-50,300,200);
  24.            add(boton);
  25.            add(informacion);
  26.            setResizable(false);
  27.            setVisible(true);
  28.  
  29.    }
  30. }
  31.  
  32. class Sonido{
  33.    public void reproduciendo(){
  34.        AudioClip sonido;
  35.        sonido=java.applet.Applet.newAudioClip(getClass().getResource("/controltiempo/WindowsNotifyMessaging.wav"));
  36.        sonido.play();
  37.    }
  38. }
  39.  
  40.  
  41. public class ControlTiempo{
  42.  
  43.    public static void main(String[] args) {
  44.        Sonido s1=new Sonido();
  45.        Ventana v1=new Ventana();
  46.        v1.abrir_ventana("Le avisaré cuando deba tomarse un descanso");
  47.        s1.reproduciendo();
  48.        v1.boton.addActionListener(new ActionListener(){
  49.          public void actionPerformed(ActionEvent e){
  50.            v1.setExtendedState(JFrame.ICONIFIED);
  51.            v1.setVisible(false);
  52.        Timer time=new Timer(7200000, new ActionListener(){
  53.            public void actionPerformed(ActionEvent b){
  54.                Ventana v2=new Ventana();
  55.                v2.abrir_ventana("Descanse del ordenador 10 minutos");
  56.                s1.reproduciendo();
  57.                v2.boton.addActionListener(new ActionListener(){
  58.                public void actionPerformed(ActionEvent c){
  59.                   v2.setExtendedState(JFrame.ICONIFIED);
  60.                   v2.setVisible(false);
  61.                   Timer time2=new Timer(600000, new ActionListener(){
  62.                    public void actionPerformed(ActionEvent h){
  63.                        Ventana v3=new Ventana();
  64.                        v3.abrir_ventana("Puede volver a trabajar. ¡Que le cunda!");
  65.                        s1.reproduciendo();
  66.                        v3.boton.addActionListener(new ActionListener(){
  67.                            public void actionPerformed(ActionEvent l){
  68.                                v3.setVisible(false);
  69.                                v1.setExtendedState(JFrame.NORMAL);
  70.                                v1.setVisible(true);
  71.                            }
  72.                        });
  73.                    }
  74.                  });
  75.                 time2.start();
  76.                 time2.setRepeats(false);
  77.                }
  78.                });
  79.            }
  80.        });
  81.        time.start();
  82.        time.setRepeats(false);
  83.          }
  84.        });  
  85.    }
  86. }
  87.