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)
Können Sie Ihre Frage bearbeiten und den Stack-Trace hinzufügen, den Sie bekommen? –
@AndrewG Hinzugefügt – MicrosoftDave