java - 按下后如何保持 JMenuItem 可见?
问题描述
只是一个简单的 GUI 显示一个 JMenu >> JMenuItem 其中一个菜单项显示一个 JPopupMenu
我的问题是 JMenuItems' 在按下时是 setVisible(false),默认情况下我也用 MouseAdapter 尝试过。
public class SubMenu extends JFrame
{
JMenuBar menubar = new JMenuBar();
JMenu File = new JMenu("File");
JMenuItem New = new JMenuItem("New");
JMenuItem Open = new JMenuItem("Open");
JMenuItem Save = new JMenuItem("Save");
JMenuItem Import = new JMenuItem("Import");
JPopupMenu Import_Popup = new JPopupMenu();
JMenuItem Import_Pop_1 = new JMenuItem("Import newsfeed list...");
JMenuItem Import_Pop_2 = new JMenuItem("Import bookmarks...");
JMenuItem Import_Pop_3 = new JMenuItem("Import mail...");
JMenuItem Exit = new JMenuItem("Exit");
SubMenu()
{
setTitle("SubMenu");
setSize(500, 500);
setLocation(200, 200);
setVisible(true);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
menubar.setBounds(0, 0, 2000, 30);
add(menubar);
menubar.add(File);
File.add(New);
File.add(Open);
File.add(Save);
File.add(new JSeparator());
File.add(Import);
File.add(new JSeparator());
File.add(Exit);
add(Import_Popup);
Import_Popup.add(Import_Pop_1);
Import_Popup.add(Import_Pop_2);
Import_Popup.add(Import_Pop_3);
// The issue is Right here.
Import.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
Import_Popup.show(Import, Import.getWidth(), 0);
}
});
}// Constructor
public static void main(String[] args)
{
new SubMenu();
}
}
在 Press 上引发此异常:
component must be showing on the screen to determine its location
有没有办法让 JMenuItems 在按下后保持可见?
解决方案
推荐阅读
- r - Changing the colour of the prompt in R on ubuntu
- xcode - Permission Denied error in Xcode 10 preventing Build...Command PhaseScriptExecution failed with a nonzero exit code
- ansible - ansible.parsing.yaml.objects.AnsibleUnicode object' has no attribute when using register with variable name
- c# - 合并两个 PdfDocument 对象
- c - 双字段的 calloc() 是否总是计算为 0.0?
- three.js - How to respond differently to ray casting? (VR)
- python - 捕获所有异常以便在部署我的应用程序后更轻松地进行调试
- jquery - 使用打字头时无法在多重搜索中输出所有值 (RunningCoder)
- java - 无法使用 MS SQL 2016 连接到 Hibernate
- android - 使用 react-navigation 抽屉在 iOS 上 React Native 崩溃