`
jorneyR
  • 浏览: 16229 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
AWT时代必须自己实现双缓冲机制,否则绘画时界面总是闪烁。 Swing的JComponent以及其子类的绘制默认是使用了双缓冲的,例如JPanel,方便了不少。 但是,当在Swing中绘制几千个图元时,如果绘图仍然是直接对Swing的Back-buffer进行操作,速度会非常的慢,甚至慢到没法忍受。例如下面的例子里有16385个点,共画16384条线,改变窗口的大小,就可以发现直接操作Swing的Back-buffer是多么的令人难以忍受。 这个时候,使用三缓冲(triple-buffer)是很有必要的:先把这些图元绘制到自己创建的缓冲图像里,然后再一次性的把此缓冲图像交给Swing后台绘 ...
可以使用算法实现镜面等各种效果,但也可以简单的通过使用Swing提供的方法实现一些特殊效果。 Swing自带了12种Composite,合理利用还是挺不错的. 源图像: 镜面效果: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.Buffered ...
生成渐变的数据:float[] fractions,Color[] colors数组,计算指定圆的相对焦点位置等。先Show一下,*^o^*。 利用了ChangleListener,第三方程序可以方便的集成调用,只需要使用addChangeListener即可。自定义颜色选择器,可以读取用户预先定义存储的颜色,默认颜色生成算法还没想好(不管了,先在此现丑了,*^o^*)。 前不久写报表的图时一直使用硬代码去不停的调试效果,用了很久也难以做出满意的效果,正好可以在报表设计中集成这个工具实时的看到设计的效果,*^o^*。 package gradient; ...
package sort; public interface Sort { String getSortName(); void sort(); int getMaxValue(); int getTopBoundIndex(); int getBottomBoundIndex(); int[] getSortingData(); boolean isStopped(); boolean isExchanged(); void setExchanged ...
鼠标点击饼图时,被点击的部分会移动出来。 代码重新重构过,看上去更舒服一点点. 修复几个Bug. import java.awt.geom.Point2D; public class GeometryUtil { // 两点之间的距离 public static double distanceOfPoints(Point2D p1, Point2D p2) { double disX = p2.getX() - p1.getX(); double disY = p2.getY() - p1.getY(); d ...
Global site tag (gtag.js) - Google Analytics