jpanel可以设置hover事件吗
展开全部
答: JPanel没有html中的hover事件 ,但是我们可以自己实现. 也很简单
分析: hover 一般就是鼠标移入和移除时. 显示的效果不一样. 所以我们可以给JPanel添加1个鼠标事件响应 , 当鼠标移入和移除时, 显示不也一样的效果就可以了
核心代码
jp.addMouseListener(new MouseAdapter() {
@Override
public void mouseExited(MouseEvent e) {//鼠标移除 ,jp恢复成默认颜色
jp.setBackground(Color.GRAY);
}
@Override
public void mouseEntered(MouseEvent e) {//鼠标移入 , jp变色
jp.setBackground(new Color(getInt(),getInt(),getInt()));//生成1个随即的颜色
}
});
完整参考代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JTFDemo extends JFrame {
public JTFDemo() {
JPanel jp = new JPanel();
jp.setBackground(Color.GRAY);//面板背景色
jp.setBounds(50, 50, 260, 180);//位置和大小
jp.addMouseListener(new MouseAdapter() {
@Override
public void mouseExited(MouseEvent e) {//鼠标移除 ,jp恢复成默认颜色
jp.setBackground(Color.GRAY);
}
@Override
public void mouseEntered(MouseEvent e) {//鼠标移入 , jp变色
jp.setBackground(new Color(getInt(),getInt(),getInt()));//生成1个随即的颜色
}
});
add(jp);
//窗口属性设置
setLayout(null);//空布局
setTitle("标题");
setSize(380, 350);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public int getInt() {
return (int)(Math.random()*256);//产生0~255之间的整数
}
public static void main(String[] args) {
new JTFDemo(). setVisible(true);//创建窗口并显示
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询