¿Cómo logra Qt que los eventos de entrada y salida del mouse estén en la bandeja del sistema? JDK6/mq612 */ public class TrayDemo extends JFrame { panel JPanel privado = nulo botón JButton privado = nulo // Lanza el botón del icono de la bandeja etiqueta JLabel privada = nulo // Se utiliza para mostrar información sobre si el sistema admite la bandeja ;private TrayIcon trayIcon = null//icono de bandeja bandeja del sistema privado tray=null//bandeja del sistema operativo demostración de bandeja pública () {super ("demostración de tecnología de bandeja Java 1.6.0"), intente {/ /set LookAndFeel para UIMANAGER estilo Windows. Establecer apariencia (" com . sun . Java . swing . plaf . windows . apariencia de windows" } catch (Excepción ex) { ex } panel = new JPanel(); ("Reducir a bandeja"); conjunto de botones habilitado (falso); Etiqueta = nueva JLabel ("Este sistema operativo no es compatible con la bandeja"); bandeja .issupported ()) {//Si el sistema operativo admite bandeja, bandeja();} this.getContentPane(). agregar (panel); esto. establecer operación de cierre predeterminada (JFrame.
EXIT _ ON _ CLOSE); this.setSize(300, 200); this . set visible(true);}/* * *Código relacionado con la bandeja*/private void tray(){ settext("Este sistema operativo admite la bandeja. "); botón . configurar habilitado (verdadero); bandeja = bandeja del sistema . getsystem tray (); // Obtener una instancia del icono de imagen de la bandeja del sistema operativo icono = nuevo icono de imagen (" imágenes/icono . gif "); // icon PopupMenu pop = nuevo menú emergente() que se mostrará en la bandeja //Construir un menú emergente con el botón derecho MenuItem show = new MenuItem("Mostrar ventana MenuItem exit = new MenuItem("Salir de la presentación") ; MenuItem Author = new MenuItem(" Author "); /** * TrayIcon tiene tres estructuras * TrayIcon(Imagen de imagen) se construye con "Icon" * TrayIcon(Imagen de imagen, información sobre herramientas de cadena) se construye con iconos e información sobre herramientas * Trayicon ( imagen imagen, información sobre herramientas de cadena, menú emergente emergente) utiliza íconos e información sobre herramientas, "menú emergente" para construir un ícono de bandeja */icono de bandeja = nuevo ícono de bandeja (icono . getimage(), "Demostración de tecnología de bandeja Java 1.6.0" , pop); // Haga clic en este botón y la ventana se cerrará. Se agrega un icono de bandeja a la bandeja del botón del sistema. AddActionListener(New Action Listener(){ Acción de anulación pública realizada(Evento de acción e){ Pruebe { Tray. Add(icono de bandeja); //Agregue el icono de la bandeja a la instancia de la bandeja del sistema y configúrelo como visible(false); // Crear ventana invisible } catch (awtexception ex) {ex. printstacktrace(); } } }); /* * *Agregar detector de mouse. Cuando el mouse hace doble clic en el icono de la bandeja, la ventana */icono de bandeja se muestra de forma predeterminada. addmouselistener(new mouseAdapter(){ public void mouseclicked(mouseEvent e)). {if(e.getClickCount()==2){ //Haga doble clic en la bandeja. remove(band icon); //Elimine el icono de la bandeja de la instancia de la bandeja del sistema setVisible(true); ); Mostrar . AddActionListener(New Action Listener()){//Haga clic en el menú "Mostrar ventana" para mostrar la ventana. Acción de anulación pública ejecutada (ActionEvent E) {Tray. Remove(band icon); //Elimina el icono de la bandeja de la instancia de la bandeja del sistema setVisible(true); //Mostrar ventana } });