Я хочу, чтобы меню в строке меню меняло свой цвет фона на мыши над .. как в большинстве приложений.
я хочу этот эффект ->Sample Picture
, что я пытался до сих пор ...Как изменить цвет названия меню на мыши (в java Swing)?
public class Menu extends JMenuBar implements ActionListener {
private JMenuItem fileItem_close;
private final MouseListener mouseAction = new MouseAdapter() { //i use this to apply the mouse event
@Override
public void mouseEntered(MouseEvent e) {
JMenu item = (JMenu)e.getSource(); //is this implementation correct ?
item.setOpaque(true);
};
@Override
public void mouseExited(MouseEvent e) {
JMenu item = (JMenu)e.getSource();
item.setOpaque(false);
};
};
public Menu() {
initFileMenu();
}
private void initFileMenu() {
JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic('F');
fileMenu.setRolloverEnabled(true);
fileItem_close = new JMenuItem("Close");
fileItem_close.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, KeyEvent.ALT_MASK)); //exit on pressing (Alt+F4)
fileItem_close.addActionListener(this);
fileMenu.add(fileItem_close);
fileMenu.setRolloverEnabled(true);
fileMenu.addMouseListener(mouseAction);
fileMenu.setBackground(new Color(0x0066FF)); //The background is not visible as JMenu is not opaque by default.
add(fileMenu);
}
@Override
public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem)e.getSource();
if(source == fileItem_close)
System.exit(0);
}
}
Код выше не работает, когда я парить над этим заголовком меню ничего не произойдет.
P.S: Я не специалист по графическому интерфейсу.
EDIT:Я использую Nimbus LaF
это работало хорошо, но не дает цвет фона я хочу .. это показывает только выбор по умолчанию цвет. – DaftPunk
@DaftPunk См. Edit –
, который делает это, но как заставить его работать с разными LaFs? (например, Нимбус) – DaftPunk