-1
Я добавляю значок в свой JMenu, который находится в апплете. Когда я запускаю апплет, значок отображается в полном порядке. Но при доступе к нему через браузер, когда этот апплет загружается в портлете в веб-приложении, значок смещается вправо в JMenu.Значок Java Swing JMenu смещается вправо
Я делаю следующее для моего JMenus. В 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));
Тогда:
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);
}
});
'setPreferredSize (новое измерение (80,70));' 1) См. [Следует ли избегать использования методов метода Set (Preferred | Maximum | Minimum) в Java Swing?] (Http://stackoverflow.com/ q/7229226/418556) (Да.) 2) Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). 3) Чтобы получить более эффективную помощь, отправьте сообщение [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). –
Я попытался использовать setSize(), значок теперь оставляет равные пробелы с обоих концов меню, хотя оба меню и значок имеют одинаковый размер. – Shariq
Я подумаю больше об этом, увидев MCVE. (У меня нет первой подсказки, почему вы ее используете, но MCVE должен объяснить.) –