GUI
@Within
一息尚存,希望不灭。
展开
-
(nine)Keyboard-Event 键盘事件
我们开始给我们的项目添加交互效果,首先我们添加键盘的交互。实现效果:我们通过空格键可以暂停小球,再按一次继续运动。修改AlgoVisualizer类添加isAnimated侦听动画是否执行import java.awt.*;import java.awt.event.*;public class AlgoVisualizer{ private Circle[] circles; ...原创 2018-06-20 19:58:20 · 1761 阅读 · 0 评论 -
(Eleven)Templates课程使用的GUI模板
本节课总结一下我们使用的GUI模板,本项目主要采用的MVC结构AlgoFrame:视图层,继承了JFrame,即JFrame的子类,其中的render是根据传入的data数据进行相应的渲染,我们使用的是Java中所有的父类Objectimport java.awt.*;import javax.swing.*;public class AlgoFrame extends JFrame{ ...原创 2018-06-22 13:36:37 · 378 阅读 · 0 评论 -
(七)动画基础
上几节我们的图形都是静态的,这节我们通过算法可视化,将算法以动画的形式展现出来。大致实现效果如下,因为不可以上传动态图,我通过两张不同的图片来表示他是动态的。修改笔画,填充,颜色,甜甜圈下面来实现,我们先建一个Circle类。public class Circle { public int x; public int y;//圆心 private int r;//半径...原创 2018-06-19 22:31:53 · 636 阅读 · 0 评论 -
高级绘制特性:抗锯齿和双缓存
现在的绘制系统越来越成型,上几节中,我们会发现我们的圆形非常的不平滑,这一节我们来实现如何抗锯齿。实现效果如下通过在边缘的位置渲染使用不同深度的颜色或者利用透明度这样的概念来实现抗锯齿。使得边缘的颜色存在灰度。人眼在效果上看上去就相对平滑很多。Anti-Aliased使用框架提供的方式。完整方案请查看Java官方文档双缓存:主要应用于动画上,解决闪烁问题。完整代码import java.awt.G...原创 2018-06-19 13:13:02 · 1186 阅读 · 0 评论 -
算法可视化中的MVC
上节我们实现了小球动画,不过Main方法有点累赘,这节我们来进行封装操作,我们来实现经典的MVC结构,Circle为我们的数据层,AlgoFrame为我们的视图层来负责显示相关所有的逻辑的逻辑,我们现在缺少一个控制层来将我们的数据层和视图层连接起来。我们新建一个类AlgoVisualizer也就是我们的算法可视化器。这就是我们的控制层import java.awt.*;public class...原创 2018-06-20 15:02:49 · 590 阅读 · 0 评论