jpanel可以设置hover事件吗

 我来答
雪飞潇潇
2017-10-03 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:832万
展开全部

答: 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);//创建窗口并显示
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式