Java设置鼠标移入改变菜单菜单栏按钮背景颜色,代码如下:
package mouse;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.plaf.basic.BasicMenuItemUI;
import javax.swing.plaf.basic.BasicMenuUI;
public class MouseEnteredTest extends JFrame {
private static final long serialVersionUID = -6740703588976621222L;
public MouseEnteredTest() {
super("鼠标移入测试");
Container c = this.getContentPane();
JMenu menu = new JMenu("文件(F)");
menu.setUI(new MenuUI(Color.blue));// 设置鼠标移入时菜单背景,定义了新类来实现
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
menuBar.add(menu);
JMenuItem item = new JMenuItem("打开(O)");
item.setUI(new MenuItemUI(Color.pink));// 设置鼠标移入时栏目背景,定义了新类来实现
menu.add(item);
JMenuItem item1 = new JMenuItem("关闭(X)");
item1.setUI(new MenuItemUI(Color.red));// 设置鼠标移入时栏目背景,定义了新类来实现
menu.add(item1);
JButton jButton = new JButton("测试");
jButton.setBounds(100, 50, 85, 35);
jButton.setForeground(Color.black);
jButton.setBackground(Color.white);
jButton.setBorder(BorderFactory.createLineBorder(Color.gray));
jButton.setFocusPainted(false);
// 为按钮添加鼠标事件
jButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
jButton.setBackground(Color.blue);
// 鼠标进入改变按钮颜色
}
@Override
public void mouseExited(MouseEvent e) {
jButton.setBackground(Color.white);
// 鼠标离开改变按钮颜色
}
});
c.add(jButton);
this.setSize(300, 200);
this.setLayout(null);
this.setUndecorated(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// 重写Item背景颜色类
class MenuItemUI extends BasicMenuItemUI {
public MenuItemUI(Color backgroundColor) {
super.selectionBackground = backgroundColor;
}
}
// 重写Menu背景颜色类
class MenuUI extends BasicMenuUI {
public MenuUI(Color backgroundColor) {
super.selectionBackground = backgroundColor;
}
}
public static void main(String[] args) {
new MouseEnteredTest();
}
}
希望对你有所帮助,欢迎订阅我的博客!