Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2011, 13:41
hugotuxsv
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 14 años, 4 meses
Puntos: 6
No puedo desminimizar ventana desde SystemTray

Estoy haciendo una aplicacion, que al minimizar quiero que se vaya al system tray o bandeja, y lo he logrado con un codigo que encontré, el problema viene cuando quiero desminimizar la aplicación, me pone como error el setExtendedState dentro del abrirListener, no se de que manera puedo hacer que vuelta a abrir.

Código java:
Ver original
  1. public static void main(String args[]) {
  2.         try{
  3.             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  4.  
  5.  
  6.             final TrayIcon trayIcon;
  7.  
  8.             if (SystemTray.isSupported()) {
  9.                
  10.                 SystemTray tray = SystemTray.getSystemTray();
  11.                 Image image = Toolkit.getDefaultToolkit().getImage("img/java.jpg");
  12.  
  13.                 MouseListener mouseListener = new MouseListener() {
  14.  
  15.                     public void mouseClicked(MouseEvent e) {
  16.                         System.out.println("Tray Icon - Mouse clicked!");                        
  17.                     }
  18.  
  19.                     public void mouseEntered(MouseEvent e) {
  20.                         System.out.println("Tray Icon - Mouse entered!");
  21.                     }
  22.  
  23.                     public void mouseExited(MouseEvent e) {
  24.                         System.out.println("Tray Icon - Mouse exited!");
  25.                     }
  26.  
  27.                     public void mousePressed(MouseEvent e) {
  28.                         System.out.println("Tray Icon - Mouse pressed!");
  29.                     }
  30.  
  31.                     public void mouseReleased(MouseEvent e) {
  32.                         System.out.println("Tray Icon - Mouse released!");
  33.                     }
  34.                 };
  35.  
  36.                 ActionListener exitListener = new ActionListener() {
  37.                     public void actionPerformed(ActionEvent e) {
  38.                         System.out.println("Exiting...");
  39.                         System.exit(0);
  40.                     }
  41.                 };
  42.  
  43.                 ActionListener abrirListener = new ActionListener() {
  44.                     public void actionPerformed(ActionEvent e) {
  45.                         this.setExtendedState(0); //<<---problema----
  46.                     }
  47.                 };
  48.  
  49.                 PopupMenu popup = new PopupMenu();
  50.                 MenuItem defaultItem = new MenuItem("Exit");
  51.                 MenuItem abrir = new MenuItem("Abrir");
  52.                 defaultItem.addActionListener(exitListener);
  53.                 abrir.addActionListener(abrirListener);
  54.                 popup.add(defaultItem);
  55.                 popup.add(abrir);
  56.  
  57.                 trayIcon = new TrayIcon(image, "Tray Demo", popup);
  58.  
  59.                 ActionListener actionListener = new ActionListener() {
  60.                     public void actionPerformed(ActionEvent e) {
  61.                         trayIcon.displayMessage("Action Event",
  62.                             "An Action Event Has Been Performed!",
  63.                             TrayIcon.MessageType.INFO);
  64.                     }
  65.                 };
  66.  
  67.                 trayIcon.setImageAutoSize(true);
  68.                 trayIcon.addActionListener(actionListener);
  69.                 trayIcon.addMouseListener(mouseListener);
  70.  
  71.                 try {
  72.                     tray.add(trayIcon);
  73.                 } catch (AWTException e) {
  74.                     System.err.println("TrayIcon could not be added.");
  75.                 }
  76.  
  77.             } else {
  78.  
  79.                 //  System Tray is not supported
  80.  
  81.             }
  82.  
  83.         }catch(Exception e){
  84.            
  85.         }
  86.        
  87.         java.awt.EventQueue.invokeLater(new Runnable() {
  88.             public void run() {
  89.                 new Marco().setVisible(true);
  90.             }
  91.         });
  92.     }