Java Swing JMenu';s图标向右移动
我将一个图标添加到小程序中的JMenu中。当我运行小程序时,图标显示正常。但是当通过浏览器访问它时,当这个小程序加载到web应用程序的portlet中时,图标会在JMenu中向右移动 我为我的JMenus做以下事情。 在initilize()中: 然后:Java Swing JMenu';s图标向右移动,java,swing,jmenu,Java,Swing,Jmenu,我将一个图标添加到小程序中的JMenu中。当我运行小程序时,图标显示正常。但是当通过浏览器访问它时,当这个小程序加载到web应用程序的portlet中时,图标会在JMenu中向右移动 我为我的JMenus做以下事情。 在initilize()中: 然后: trnAnalysisImg = new ImageIcon(ImageIO.read(this.getClass().getClassLoader().getResourceAsStream("images/MainNav_Btn_Trn
trnAnalysisImg = new ImageIcon(ImageIO.read(this.getClass().getClassLoader().getResourceAsStream("images/MainNav_Btn_TrnAnalysis.png")));
trnAnalysisPressedImg = new ImageIcon(ImageIO.read(this.getClass().getClassLoader().getResourceAsStream("images/MainNav_Btn_TrnAnalysis_Pressed.png")));
terrainAnalysisMenu.setIcon(trnAnalysisImg);
terrainAnalysisMenu.setHorizontalAlignment(SwingConstants.CENTER );**//tried LEFT and RIGHT too, RIGHT works when I run applet but in browser there is no effect**
menubar.setLayout(new BoxLayout(menubar,
BoxLayout.LINE_AXIS));
menubar.add(fileMenu);
menubar.add(new RGWSeparator(SwingConstants.VERTICAL));
menubar.add(terrainAnalysisMenu);
terrainAnalysisMenu.addMenuListener(new MenuListener() {
@Override
public void menuSelected(MenuEvent e) {
RGWMenu menu = (RGWMenu) e.getSource();
menu.setIcon(trnAnalysisPressedImg);
}
@Override
public void menuDeselected(MenuEvent e) {
RGWMenu menu = (RGWMenu) e.getSource();
menu.setIcon(trnAnalysisImg);
}
@Override
public void menuCanceled(MenuEvent e) {
RGWMenu menu = (RGWMenu) e.getSource();
menu.setIcon(trnAnalysisImg);
}
});
结果如下:
添加此选项至少解决了我的问题:
terrainAnalysisMenu.setIconTextGap(0);
虽然我有一个没有文本的菜单,但它仍然需要这个代码>1)请参阅(是)2)要更快获得更好的帮助,请发布或。3) 为了更快地获得更好的帮助,请发布一个or。我尝试使用setSize(),图标现在从菜单两端留出相等的空间,尽管菜单和图标的大小都相同。一旦看到MCVE,我会仔细考虑它。(我不知道您为什么要使用它,但MCVE应该解释。)我不知道您还需要复制/验证什么,我已经提供了JMenu的初始化、其容器(菜单栏)的布局、此菜单包含的内容(图标)以及它下面的布局。。我是问这些东西有没有问题。根据你的建议,我尝试了setSize()而不是setPreferedSize(),图标现在从菜单的两端留出相等的空间,尽管菜单和图标的大小相同。MCVE需要是C、V和E以及M。不可编译的代码段以任何方式都是完整的,因此不可验证,或者是问题的一个例子。
terrainAnalysisMenu.setIconTextGap(0);