日期:2014-05-20  浏览次数:20909 次

急急急!!!java 绘图的画布大小
想用java实现一个绘图程序,画完图保存成固定的尺寸大小,只要确定好画布大小就可以吗?如何确定画布大小?
哪位高手指点一下啊、、、、

------解决方案--------------------
那你自己把绘图区域的图像缩放到一个240*240的image里,然后再把image的信息保存成图片
怎么保存,LZ自己参考相关的api
java.awt.image.BufferedImage
javax.imageio.ImageIO
------解决方案--------------------
既然是定制大小,直接一开始就把作为画布的 BufferedImage 定义成你想要的大小就可以了。
在绘制过程中,如果用户需要放大缩小,就直接使用缩放显示,但是画布本身还是那么大。
最后用 ImageIO 把BufferedImage 输出到文件就行了
------解决方案--------------------
我没细看你的代码,我把保存部分给你重写了一下
if(e.getSource()==savePic)//保存图画

int frameX = getX();
int frameY = getY();
int frameHeight = getHeight();
int frameWidth = getWidth();

try
{
Rectangle rect = new Rectangle(frameX , frameY , frameWidth , frameHeight);
Robot robot = new Robot();
BufferedImage buff = robot.createScreenCapture(rect);
System.out.println(ImageIO.write(buff , "jpg" , new File("D:/123.jpg")));
}
catch(Exception ee){}
}

原理就是获取你当前frame的位置在长宽大小,然后生成一个矩形框截图,然后保存出来,你可以试一下,保存的图片是包括你的按钮的,如果要不需要的话你就自己改一下矩形框的大小和位置就可以了。这段代码要引用import java.awt.image.*;
import javax.imageio.*;这些,我是默认保存D盘的123.jpg,如果需要选择框保存自己加进去就可以了。
还有,你的程序一画图就会有数组越界异常,我没看其它部分,你自己好好检查下标吧。