Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing JMenu';s图标向右移动_Java_Swing_Jmenu - Fatal编程技术网

Java Swing JMenu';s图标向右移动

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

我将一个图标添加到小程序中的JMenu中。当我运行小程序时,图标显示正常。但是当通过浏览器访问它时,当这个小程序加载到web应用程序的portlet中时,图标会在JMenu中向右移动

我为我的JMenus做以下事情。 在initilize()中:

然后:

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);