gpt4 book ai didi

java - 在任务栏中的 PopupMenu 中添加垂直分隔符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:24 25 4
gpt4 key购买 nike

如何在任务栏的应用程序弹出菜单中添加垂直分隔符?

   tray = SystemTray.getSystemTray();             
openMenuItem = new MenuItem("Open P");
stopKLMenuItem = new MenuItem("Stop");
exitMenuItem = new MenuItem("exit");
menu.add(exitMenuItem);
menu.add(stopKLMenuItem);
menu.addSeparator(); // adds a horizontal separator
menu.add(openMenuItem);
trayIcon = new TrayIcon(image,"P",menu);

语句 menu.addSeparator() 添加了一个水平分隔符。我还想要一个垂直分隔符,例如:

enter image description here

我该怎么做?

最佳答案

一个简单的技巧是向 JMenuItem 添加一个空图标。外观然后添加您正在寻找的垂直分隔符(当然,这仅适用于 Windows L&F,其他 L&F 可能会以不同方式呈现):

Menu example result

以及产生它的代码:

import java.awt.AWTException;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class TestTrayIcon {

protected void initUI() {

TrayIcon trayIcon = new TrayIcon(new ImageIcon(
"http://3.bp.blogspot.com/-nh7fv5FqpU4/TeUbTvAdSkI/AAAAAAAAAUo/Ig53KJGvzlk/s45/avatar.png").getImage());

final JPopupMenu popupMenu = new JPopupMenu();
JMenuItem checkBox1 = new JMenuItem("Last checked...", new ImageIcon(new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB)));
JMenuItem checkBox2 = new JMenuItem("Open...");

popupMenu.add(checkBox1);
popupMenu.addSeparator();
popupMenu.add(checkBox2);

trayIcon.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
popupMenu.setLocation(e.getX(), e.getY());
popupMenu.setInvoker(popupMenu);
popupMenu.setVisible(true);
}
}
});
try {
SystemTray.getSystemTray().add(trayIcon);
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
new TestTrayIcon().initUI();
}
});
}

}

关于java - 在任务栏中的 PopupMenu 中添加垂直分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12638845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com