2016-07-19 10 views
0

Ich erstelle ein kleines Programm für meine Taskleiste, in dem es einige Informationen gibt und ein Symbol im Popup-Menü neben Text anzeigt. Ich habe versucht, ein Symbol mit dem JMenuItem hinzuzufügen, aber ich kann es nicht das PopupMenu hinzufügen. Auch wenn ich ein menuItem verwende, kann ich kein Icon hinzufügen.Hinzufügen eines Symbols/Bilds neben Text als Teil eines menuItem in PopupMenu

Hier ist mein Code so weit:

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

//...... 


public class Interface 
{ 
    public static void mainInterface() 
    { 
     if(!SystemTray.isSupported()) 
     { 
      System.out.println("System tray not supported! This program can only be used on Windows."); 
      return ; 
     } 
     SystemTray systemTray = SystemTray.getSystemTray(); 
     Image image = Toolkit.getDefaultToolkit().getImage("src/icon.png"); 

     PopupMenu trayPopupMenu = new PopupMenu(); 

     MenuItem close = new MenuItem("Close"); 
     MenuItem CMItem = new MenuItem("test1", new ImageIcon("src/greenIcon.png")); 
     MenuItem HerItem = new MenuItem("test2", new ImageIcon("src/greenIcon.png")); 


     close.addActionListener(new ActionListener() 
     { 
      @Override 
      public void actionPerformed(ActionEvent e) 
      { 
       System.exit(0);    
      } 
     }); 
     trayPopupMenu.add(close); 
     trayPopupMenu.add(CMItem); 
     trayPopupMenu.add(HerItem); 
     TrayIcon trayIcon = new TrayIcon(image, "Status", trayPopupMenu); 

     trayIcon.setImageAutoSize(true); 

     try 
     { 
      systemTray.add(trayIcon); 
     }catch(AWTException awtException) 
     { 
      awtException.printStackTrace(); 
     } 
     System.out.println("end of main"); 
    } 
} 

Der obige Code wird nicht wegen des Symbolbereiches in den menuItem Objekten ausgeführt werden. Kann mir jemand helfen, das Symbol neben den Text im Menü zu setzen?

Edit:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The constructor MenuItem(String, ImageIcon) is undefined 
    The constructor MenuItem(String, ImageIcon) is undefined 

    at minecraft.status.checker.Interface.mainInterface(Interface.java:23) 
    at minecraft.status.checker.MainClass.main(MainClass.java:12) 
+0

Können Sie Ihre Frage bearbeiten und den Stack-Trace hinzufügen, den Sie bekommen? –

+0

@AndrewG Hinzugefügt – MicrosoftDave

Antwort

0

Gemäß der Dokumentation von MenuItemhere, MenuItem keinen Konstruktor hat, das ein Symbol nehmen (das ist, was Ihr Stack-Trace sagt, auch), noch keine Methoden unterstützt um irgendwelche Symbole hinzuzufügen. Kurz gesagt, MenuItem kann kein Symbol annehmen.

Sie haben erwähnt, versuchen javax.swing die JMenuItem, zu verwenden, aber wie Sie entdeckt, ein JMenuItem würde ein JPopupMenu erfordern, die von TrayIcon nicht unterstützt wird. Da es für Swing kein JTrayIcon oder ein ähnliches Pendant zu TrayIcon gibt, glaube ich nicht, dass es möglich ist, das zu tun, was Sie versuchen.

Verwandte Themen