2013-07-01 3 views
0

я в настоящее время имеем дело с минимизацией JFrame в системный трей, и я сделал так успешно, как указано ниже:JFrame - значок не отображается на панели задач, когда Sys JFrame было сведено к минимуму

// 
    URL resource = panel.getClass().getClassLoader().getResource("boston.png"); 
    System.out.println("rfc95Panel.getClass().getClassLoader().getResource() is: " + rfc95Panel.getClass().getClassLoader().getResource("boston.png")); 

    Image image = Toolkit.getDefaultToolkit().getImage(resource); 

    // 
    frame.setIconImage(image); 

    // 
    if (SystemTray.isSupported()) { 
     final TrayIcon icon = new TrayIcon(image); 
     icon.setToolTip("Program minimised"); 

     // 
     icon.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       frame.setVisible(true); 
       frame.setExtendedState(frame.NORMAL); 
       getSystemTray().remove(icon); 
      } 
     }); 

     // Adds the specified window state listener to receive window events 
     // from this window. If l is null, no exception is thrown and no action 
     // is performed. 
     frame.addWindowListener(new WindowAdapter() { 

      @Override 
      public void windowIconified(WindowEvent e) { 
       frame.setVisible(false); 
       try { 
        getSystemTray().add(icon); 
       } catch (AWTException e1) { 
        e1.printStackTrace(); 
       } 
      } 
     }); 
    } 

Проблема заключается в том при сворачивании я не могу увидеть/значок изображения, когда я открываю в системном трее т.е. я могу видеть всплывающую подсказку, но я не могу видеть значок, связанный с моей программой - см изображения ниже

sys tray image

Любыми идеи о том, что мне не хватает? Я чувствую, что это может быть что-то основное.

+1

Вы уверены, что ваш файл bosten.png загружен правильно? – Grammin

+1

Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

+0

Привет Граммин, спасибо за ответ .. изображение загружается правильно .. Я могу подтвердить это, распечатав местоположение изображения на консоли, которая является rfc95Panel.getClass(). GetClassLoader(). GetResource(): файл:/C: /Users/TestProject/bin/boston.png .. Я также могу увидеть изображение на панели задач, когда программа открыта. – TokTok123

ответ

1

Простым ответом на вышеуказанную проблему, с которой я столкнулся, был размер изображения, которое я намеревался использовать в качестве значка в панели задач. В основном мои размеры были 64 на 64, но в идеале это должно быть так, что размеры в моем случае уменьшены. Я уменьшил изображение до 16 на 16.