ha funzionato mettendo un empty border della stessa dimensione del bordo che viene creato quando si apssa sopra con il mouse:
codice:import java.awt.Dimension; import java.awt.Insets; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.util.Hashtable; import javax.swing.*; import javax.swing.border.*; public class MenuBar extends JMenuBar implements MouseListener { public static JMenu menuFile; public static JMenu menuPlugin; public static JMenuItem miExit; public static Hashtable menuItems = new Hashtable(); private static Hashtable commands; private static JMenuBar menubar; int space = 2; public MenuBar() { super(); JMenu menu; //make menu file menuFile = new JMenu("file"); menuFile.addMouseListener(this); menuFile.setBorder(new EmptyBorder(space,space,space,space)); add(menuFile); //make menu edit menu = new JMenu("edit"); menu.addMouseListener(this); menu.setBorder(new EmptyBorder(space,space,space,space)); add(menu); //make menu search menu = new JMenu("search"); menu.addMouseListener(this); menu.setBorder(new EmptyBorder(space,space,space,space)); add(menu); } //end constructor public void mouseClicked(MouseEvent arg0) { } public void mouseEntered(MouseEvent arg0) { Object obj = arg0.getSource(); if (obj instanceof JMenuItem) { JMenuItem button = (JMenuItem) obj; button.setBorder(BorderFactory.createRaisedBevelBorder()); } } public void mouseExited(MouseEvent arg0) { Object obj = arg0.getSource(); if (obj instanceof JMenuItem) { JMenuItem button = (JMenuItem) obj; button.setBorder(new EmptyBorder(space,space,space,space)); } } public void mousePressed(MouseEvent arg0) { } public void mouseReleased(MouseEvent arg0) { } public static void main (String[] args) { JFrame f = new JFrame(); f.setJMenuBar(new MenuBar()); f.setVisible(true); f.setSize(400, 200); } } // end class

Rispondi quotando