我想在 Ctrl+F6 上创建与 Eclipse 中完全相同的弹出菜单。
它应该有 JScrollBar
和字符串列表,其中每个项目都有小边框。
我有使用JDialog
的想法,但如何让它不显示边框和关闭按钮,而只显示带滚动条的JList
?
谢谢!
最佳答案
最简单、最直接的方法是使用 JPopupMenu
类。您可以将任何 JComponent
添加到 JPopupMenu
,而不仅仅是 JMenuItem
。
这是一个按钮,单击该按钮后,会在弹出窗口中显示一个 JList
,没有任何关闭按钮,只有一个滚动条。只要弹出窗口(JList
)失去焦点,弹出窗口就会自动关闭。
final JButton b = new JButton("Press me");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
final DefaultListModel<String> model = new DefaultListModel<>();
for (int i = 0; i < 100; i++)
model.addElement(i + ".");
final JList<String> l = new JList<>(model);
final JPopupMenu pm = new JPopupMenu();
final JScrollPane sp = new JScrollPane(l);
// pm.setPreferredSize(new Dimension(100, 300));
pm.add(sp);
pm.show(b, 0, 0);
}
});
关于java - 在 Eclipse 中按 Ctrl+F6 创建弹出菜单的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23218294/