当前位置:   article > 正文

JAVA实现简单桌面宠物_java编写桌宠

java编写桌宠

突发奇想想做个桌宠,但是只在大一摸过一点点C完全没有java基础,站内已有的攻略使用时出现了大大小小的问题且功能略多驾驭不了TAT于是拿隔壁院的舍友的书啃了半天,做了一个非常简单的桌宠,只有拖拽时更换画面的功能。

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. public class ResizableDesktopPet extends JFrame {
  6. private JLabel petLabel;
  7. private Point mouseOffset;
  8. public ResizableDesktopPet(int width, int height) {
  9. setUndecorated(true);
  10. setBackground(new Color(0, 0, 0, 0));
  11. setSize(width, height);
  12. petLabel = new JLabel();
  13. ImageIcon normalIcon = new ImageIcon("E:/1.gif"); //替换为你自己的宠物正常状态的图片路径
  14. ImageIcon hoverIcon = new ImageIcon("E:/2.gif"); //替换为你自己的宠物鼠标悬停状态的图片路径
  15. petLabel.setIcon(normalIcon);
  16. // 监听鼠标按下事件
  17. petLabel.addMouseListener(new MouseAdapter() {
  18. @Override
  19. public void mousePressed(MouseEvent e) {
  20. mouseOffset = e.getPoint(); // 记录当前鼠标位置和窗口左上角的距离
  21. }
  22. @Override
  23. public void mouseReleased(MouseEvent e) {
  24. if (e.getButton() == MouseEvent.BUTTON1) {
  25. mouseOffset = null; // 重置鼠标位置和窗口左上角的距离
  26. }
  27. }
  28. });
  29. // 监听鼠标移动事件
  30. petLabel.addMouseMotionListener(new MouseAdapter() {
  31. @Override
  32. public void mouseDragged(MouseEvent e) {
  33. if (mouseOffset != null) {
  34. Point mousePosition = e.getLocationOnScreen();
  35. setLocation(mousePosition.x - mouseOffset.x, mousePosition.y - mouseOffset.y); // 移动窗口
  36. petLabel.setIcon(hoverIcon); // 切换为悬停状态的图片
  37. }
  38. }
  39. @Override
  40. public void mouseMoved(MouseEvent e) {
  41. petLabel.setIcon(normalIcon); // 切换回正常状态的图片
  42. }
  43. });
  44. setLayout(new BorderLayout());
  45. add(petLabel, BorderLayout.CENTER);
  46. pack();
  47. setLocationRelativeTo(null);
  48. setVisible(true);
  49. }
  50. public static void main(String[] args) {
  51. SwingUtilities.invokeLater(() -> new ResizableDesktopPet(200, 200));
  52. }
  53. }

图片替换位可以是jpg,png或者gif,我是自己画了个gif,现在已经有了一只桌宠坐在桌面上了~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/657538
推荐阅读
相关标签
  

闽ICP备14008679号