快速是,不,或者它并不重要:
我正在覆盖抽象按钮的paint方法,我想知道是否正在执行
GradientPaint gp = new GradientPaint(0, 0, color1, 0, h, color2);
RoundRectangle2D r = new RoundRectangle2D.Float(0, 0, w, h, w/5, h/5);
和类似的方法会影响性能vs
GradientPaint gp;
RoundRectangle2D r;
外部涂料然后
gp = new GradientPaint(0, 0, color1, 0, h, color2);
r = new RoundRectangle2D.Float(0, 0, w, h, w/5, h/5);
在paint方法中
答案 0 :(得分:4)
Jeremy怎么样?
不是你要问的,但最快的可能是在BufferedImage中进行一次绘制,然后在paint(或者更好的paintComponent)方法中显示BufferedImage。
答案 1 :(得分:4)
实例化一次或必要时(例如尺寸更改)而不是多次。
答案 2 :(得分:2)
在测量问题之前,寻找最易维护的解决方案: - )
每个“优化”都需要额外的逻辑(又名:LOC)。每条额外的生产线都有 - 难以预测 - 维护价格。我的一般规则是它不会增加不可估量的成本。
BTW:无论如何你都不能做你的第一个选项,渐变是不可变的 - 所以你必须在每次改变大小时重新创建。