asd*_*jkl 3 java swing canvas repaint
我必须编写一个简单的Java应用程序,它可以加载图片,以GUI形式显示,允许用户应用一些转换,并显示转换后的图片.我的解决方案工作正常,但UI有点闪烁,因为重绘方法调用太频繁(例如当用户使用JSlider缩放图像时)
我的代码看起来像这样:
public class ImageCanvas extends Canvas
{
private BufferedImage image;
// ...
@Override
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
if(image != null)
{
// I draw out the image...
}
}
public void setImage(BufferedImage image)
{
this.image = image;
this.repaint();
}
public void setRotation(double rotation)
{
this.rotation = rotation;
this.repaint();
}
public void setScale(double scaleX, double scaleY)
{
//set the scaling field, then repaint ....
}
// and so on...
}
Run Code Online (Sandbox Code Playgroud)
当然,我在我的主UI上有一个ImageCanvas控件,我只是调用公共方法(参见上面的"setRotation"方法),它重绘了画布区域.我知道这是一个简单的问题,但我甚至没有在Canvas上找到DoubleBuffered属性......
任何帮助赞赏.
| 归档时间: |
|
| 查看次数: |
3551 次 |
| 最近记录: |