返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现带GUI的气泡诗词效果
  • 349
分享到

Java实现带GUI的气泡诗词效果

Java气泡诗词特效Java气泡特效 2022-12-21 12:12:32 349人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

之前已经为大家介绍过利用Java实现带GUI的气泡诗词特效,本文将为大家介绍另一种方法同样也可以实现气泡诗词的效果。下面是示例代码 import java.awt.*; import

之前已经为大家介绍过利用Java实现带GUI的气泡诗词特效,本文将为大家介绍另一种方法同样也可以实现气泡诗词的效果。下面是示例代码

import java.awt.*;
import java.awt.event.*;
 
public class AlGoVisualizer {
    private Object data;
    private Circle[] circles;
    private AlgoFrame frame;
    private boolean isAnmiated = true;
 
    String SuShi_Poem = "夜饮东坡醒复醉,归来仿佛三更。" +
            "家童鼻息已雷鸣。敲门都不应,倚杖听江声。\n" +
            "\n" +
            "长恨此身非我有,何时忘却营营。" +
            "夜阑风静縠纹平。小舟从此逝,江海寄余生。";
 
    public AlgoVisualizer(int sceneWidth, int sceneHeight, int N){
 
        circles = new Circle[N];
        int R = 50;
 
        for(int i = 0; i < N; i++)
        {
            int x = (int)(Math.random()*(sceneWidth-2*R)) + R;
            int y = (int)(Math.random()*(sceneHeight-2*R)) + R;
 
            int vx = (int)(Math.random()*11) - 5;
            int vy = (int)(Math.random()*11) - 5;
            circles[i] = new Circle(x, y, R, vx, vy);
 
        }
 
        EventQueue.invokeLater(()->{
             frame = new AlgoFrame("Welcome-Java", sceneWidth, sceneHeight);
             frame.addKeyListener(new AlgoKeyListener());
            frame.addMouseListener(new AlgoMouseListener());
 
            new Thread(()->{run();}).start();
        });
    }
 
 
    public AlgoVisualizer(int sceneWidth, int sceneHeight, int N, String centerLael){
 
        Circle.showLabel = true;
        circles = new Circle[N];
        int R = 50;
 
        for(int i = 0; i < N; i++)
        {
            int x = (int)(Math.random()*(sceneWidth-2*R)) + R;
            int y = (int)(Math.random()*(sceneHeight-2*R)) + R;
 
            int vx = (int)(Math.random()*11) - 5;
            int vy = (int)(Math.random()*11) - 5;
//            circles[i] = new Circle(x, y, R, vx, vy);
            circles[i] = new Circle(x, y, R, vx, vy, centerLael.charAt(i) + "");
 
        }
 
        EventQueue.invokeLater(()->{
            frame = new AlgoFrame("Welcome-Java", sceneWidth, sceneHeight);
            frame.addKeyListener(new AlgoKeyListener());
            frame.addMouseListener(new AlgoMouseListener());
            new Thread(()->{
                run();
            }).start();
        });
    }
 
    private void run(){
 
        while(true)
        {
            //绘制当前数据
            frame.render(circles);
            AlgoVisHelper.pause(20);
            //更新数据
            if(isAnmiated)
            {
                for(Circle circle:circles)
                    circle.move(0, 0, frame.getcanvasWidth(), frame.getCanvasHeight());
            }
        }
    }
 
    private class AlgoKeyListener extends KeyAdapter {
        @Override
        public void keyReleased(KeyEvent event)
        {
            // 空格 动画
            if(event.geTKEyChar() == ' ')
            {
                isAnmiated = !isAnmiated;
            }
 
 
//            +事件加速,跑的更快
            if(event.getKeyChar() == '+')
            {
//                System.out.println("加速++++++");
                for(Circle circle:circles)
                {
                    circle.vx *= 2;
                    circle.vy *= 2;
 
                }
 
            }
//    —减速,慢一点
            if(event.getKeyChar() == '-')
            {
//                System.out.println("加速++++++");
                for(Circle circle:circles)
                {
                    circle.vx /= 2;
                    circle.vy /= 2;
 
 
                    if(circle.vx == 0 && circle.vy == 0)
                    {
                        System.out.println("practice makes perfect!");
                        System.out.println(SuShi_Poem);
 
                        circle.vx = (int)(Math.random()*11) - 5;
                        circle.vy = (int)(Math.random()*11) - 5;
                    }
                }
 
            }
 
 
 
        }
    }
 
    private class AlgoMouseListener extends MouseAdapter{
        @Override
        public void mousePressed (MouseEvent event)
        {
            event.translatePoint(0,
//                    (frame.getBounds().height -frame.getCanvasHeight()));
                    -(frame.getBounds().height -frame.getCanvasHeight()));
 
//            System.out.println(event.getPoint());
 
            for(Circle circle:circles)
            {
                if(circle.contain(event.getPoint())){
                    circle.isFilled = !circle.isFilled;
                }
 
            }
 
        }
    }
 
    public static void main(String[] args) {
 
        String poemData = "三月七日沙湖道中遇雨。雨具先去,同行皆狼狈,余独不觉。已而遂晴,故作此词 \n" +
                "莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。\n" +
                "料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。";
 
        int sceneWidth = 800;
        int sceneHeight = 800;
        int N = 15;
 
//        AlgoVisualizer visualizer = new AlgoVisualizer(sceneWidth, sceneHeight, N);
        AlgoVisualizer visualizer = new AlgoVisualizer(sceneWidth, sceneHeight, N, poemData);
 
    }
}

到此这篇关于Java实现带GUI的气泡诗词效果的文章就介绍到这了,更多相关Java气泡诗词内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java实现带GUI的气泡诗词效果

本文链接: https://lsjlt.com/news/175414.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java实现带GUI的气泡诗词效果
    之前已经为大家介绍过利用Java实现带GUI的气泡诗词特效,本文将为大家介绍另一种方法同样也可以实现气泡诗词的效果。下面是示例代码 import java.awt.*; import...
    99+
    2022-12-21
    Java气泡诗词特效 Java气泡特效
  • Android气泡效果实现方法
    本文实例讲述了Android气泡效果实现方法。分享给大家供大家参考,具体如下: 最近在看以前在eoe上收藏的一些源代码,准备将这些代码加上一些自己的注释,然后贴出来,方便自己日...
    99+
    2022-06-06
    方法 Android
  • CSS实现聊天气泡效果
    这篇文章给大家分享的是有关CSS实现聊天气泡效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一、效果图 京东效果模拟的效果 二、原理准备一个高度和宽度为0的盒子将这个盒子设置一个边框将边框...
    99+
    2023-06-08
  • css实现气泡的小尖角效果
    小编给大家分享一下css实现气泡的小尖角效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果图(边框颜色太淡,放在{}里面):{  }参考链接 纯CSS气泡效果需要用到的知识点:当div的宽度和高度都是0时,整...
    99+
    2023-06-08
  • 如何利用CSS3实现气泡效果
    这篇文章主要讲解了“如何利用CSS3实现气泡效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用CSS3实现气泡效果”吧!首先定义一个CSS Code...
    99+
    2024-04-02
  • CSS聊天气泡效果怎么实现
    本篇内容介绍了“CSS聊天气泡效果怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   HTML结...
    99+
    2024-04-02
  • vue实现气泡运动撞击效果
    本文实例为大家分享了vue实现气泡运动撞击效果的具体代码,供大家参考,具体内容如下 封装组件 <template>   <ul id="main">     ...
    99+
    2024-04-02
  • HTML5如何实现QQ聊天气泡效果
    小编给大家分享一下HTML5如何实现QQ聊天气泡效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天自己用 HTML/CSS ...
    99+
    2024-04-02
  • 怎么用CSS3实现聊天气泡效果
    小编给大家分享一下怎么用CSS3实现聊天气泡效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   <pclass=&q...
    99+
    2024-04-02
  • Android 实现仿QQ拖拽气泡效果的示例
    目录效果图:一、实现思路二、功能实现三、全屏拖拽效果实现源码地址:效果图: 一、实现思路 在列表中默认使用自定义的TextView控件来展示消息气泡,在自定义的TextView控件...
    99+
    2024-04-02
  • Android实现好看的微信聊天气泡效果
    目录前言代码实现踩坑记录总结前言 在聊天类应用中,通常用气泡作为聊天内容的背景色,比如微信的聊天背景,别人发过来的是白色的气泡,自己发的是绿色的气泡。 上面这种是比较普通的,这篇我...
    99+
    2024-04-02
  • CSS3怎么实现超酷炫的粘性气泡效果
    今天小编给大家分享一下CSS3怎么实现超酷炫的粘性气泡效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起...
    99+
    2024-04-02
  • android 仿微信聊天气泡效果实现思路
    微信聊天窗口的信息效果类似iphone上的短信效果,以气泡的形式展现,在Android上,实现这种效果主要用到ListView和BaseAdapter,配合布局以及相关素材,就...
    99+
    2022-06-06
    仿微信 天气 Android
  • Android实现气泡布局/弹窗效果 气泡尖角方向及偏移量可控
    Android 自定义布局实现气泡弹窗,可控制气泡尖角方向及偏移量。 效果图 实现 首先自定义一个气泡布局。 public class BubbleRelativeLay...
    99+
    2022-06-06
    弹窗 布局 偏移量 Android
  • css中如何实现鼠标经过出现气泡框效果
    这篇文章主要为大家展示了“css中如何实现鼠标经过出现气泡框效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中如何实现鼠标经过出现气泡框效果”这篇文章吧...
    99+
    2024-04-02
  • CSS怎么实现聊天框小尖角和气泡效果
    本篇内容主要讲解“CSS怎么实现聊天框小尖角和气泡效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS怎么实现聊天框小尖角和气泡效果”吧!那么,用CSS怎么...
    99+
    2024-04-02
  • 怎么用纯CSS实现语音聊天气泡框效果
    这篇文章主要为大家展示了“怎么用纯CSS实现语音聊天气泡框效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用纯CSS实现语音聊天气泡框效果”这篇文章吧。 ...
    99+
    2024-04-02
  • IOS开发仿微信消息长按气泡菜单实现效果
    目录正文使用方法导入项目使用对比微信实现效果正文 话不多说,直接上效果图 使用方法 导入项目 代码地址:github.com/shangjie119… 将SJPopM...
    99+
    2024-04-02
  • Java GUI实现多个窗口切换效果
    本文实例为大家分享了Java GUI实现多个窗口切换效果的具体代码,供大家参考,具体内容如下 功能: 主要实现的功能为实现多个界面的切换,并且一个window的打开和关闭可以影响其他...
    99+
    2024-04-02
  • css如何实现小尖角聊天对话框带尖角的说话泡泡效果
    这篇文章主要介绍了css如何实现小尖角聊天对话框带尖角的说话泡泡效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、css 绘制实现小尖角聊天对话框,带尖角的说话泡泡,先给...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作