I add an icon to my JMenu which is in an applet. When I run the applet the icon appear allright. But when access it through a browser, as this applet loads in a portlet in a web application, the icon shifts to right in the JMenu.
I do the following for my JMenus. In initilize():
setOpaque(false);
setUI((MenuItemUI) BasicMenuUI.createUI(this));
setContentAreaFilled(false);
setFocusPainted(false);
setBorderPainted(false);
setFont(UXStandards.MENU_TEXT_FONT);
setForeground(UXStandards.MENU_TEXT_COLOR);
setLayout(new FlowLayout(FlowLayout.LEFT));
setPreferredSize(new Dimension(80,70));
Then:
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);
}
});