Java JMenuItem的工具提示
我将菜单添加到工具栏,如下所示:Java JMenuItem的工具提示,java,swing,tooltip,jmenu,jmenuitem,Java,Swing,Tooltip,Jmenu,Jmenuitem,我将菜单添加到工具栏,如下所示: JMenuBar menu = new JMenuBar(); JMenu actions = new JMenu("Aktionen"); Icon menuIcon = ImageUtilities.loadImageIcon("pathToIcon", true); actions.setIcon(menuIcon); // Add JMenuItem addItem = new JMenuItem("Ad
JMenuBar menu = new JMenuBar();
JMenu actions = new JMenu("Aktionen");
Icon menuIcon = ImageUtilities.loadImageIcon("pathToIcon", true);
actions.setIcon(menuIcon);
// Add
JMenuItem addItem = new JMenuItem("Add");
Icon addIcon = ImageUtilities.loadImageIcon("pathToIcon", true);
addItem.setIcon(addIcon);
addItem.setToolTipText("Add new Item");
addItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AddItemAction someAction = new AddItemAction();
someAction.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, null) {
// Foo
});
}
});
menu.add(actions);
actions.add(addItem);
toolbar.addSeparator();
toolbar.add(menu);
基本上,它工作得很好。但是,它从不显示工具提示(“添加新项”)。有什么提示吗
编辑:以防有同样问题的人偶然发现:这是L&F,正如我从一开始就应该怀疑的那样。它有一个属性,用于显示JMenuItems的工具提示;并且默认为false。下面的操作正确。如果您仍然有问题,请编辑您的问题,以包括一个展示您所描述问题的示例
附录:我将菜单
添加到JToolBar
,它仍然可以工作,无论是停靠还是自由浮动
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JToolBar;
/** @see http://stackoverflow.com/a/14630345/230513 */
public class Test {
private void display() {
JFrame f = new JFrame("Test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menu = new JMenuBar();
JMenu actions = new JMenu("Aktionen");
JMenuItem addItem = new JMenuItem("Add");
addItem.setToolTipText("Add new Item");
menu.add(actions);
actions.add(addItem);
JToolBar toolbar = new JToolBar("Tools");
toolbar.add(menu);
f.add(toolbar);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test().display();
}
});
}
}
你们并没有做任何不同的事情,你们的例子当然很好用。在我的例子中唯一不同的是,工具栏并没有添加到JFrame中,而是添加到Netbeans TopComponent中。如果上面的示例在您的平台上运行,那么问题就出在代码的其他地方。