Java设置鼠标移入改变菜单菜单栏按钮背景颜色

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();
	}
}

希望对你有所帮助,欢迎订阅我的博客!

猜你喜欢

转载自blog.csdn.net/qq_35923287/article/details/89505601