- 浏览: 16229 次
- 性别:
- 来自: 杭州
最新评论
-
hk8082:
swing一直用不好
看到别人写的3D饼图,模仿了一个 -
vivia:
addMouseMotionListener(new Mous ...
看到别人写的3D饼图,模仿了一个 -
diggywang:
jorneyR 写道skzr.org 写道jorneyR 写道 ...
看到别人写的3D饼图,模仿了一个 -
kinganpo:
jorneyR 写道忘了提用户预先定义的颜色了(可以重复使用用 ...
Swing渐变生成工具 -
jorneyR:
juda 写道楼主能不能把你做的那个边框的代码发上来,很谢谢
...
利用Swing的Api实现镜面效果
文章列表
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 ...