public void mouseDragged(MouseEvent e)
{
x2 = e.getX();
y2 = e.getY();
BufferedImage bi = new BufferedImage(im1.getWidth(null), im1.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D)bi.getGraphics();
g.drawImage(im1, 0,0, null);
g.setColor(Color.RED);
g.drawRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2 - x1) , Math.abs(y2 - y1));
g.dispose();
Graphics g2 = jl.getGraphics();
g2.drawImage(bi,0,0, null);
g2.dispose();
这里监控鼠标,在原图形上画矩形,为什么画的矩形最上面都是在屏幕最顶上
x1,y1是鼠标按下的坐标
我明明drawRect的参数是以按下和Dragged的坐标的最小值啊
{
x2 = e.getX();
y2 = e.getY();
BufferedImage bi = new BufferedImage(im1.getWidth(null), im1.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D)bi.getGraphics();
g.drawImage(im1, 0,0, null);
g.setColor(Color.RED);
g.drawRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2 - x1) , Math.abs(y2 - y1));
g.dispose();
Graphics g2 = jl.getGraphics();
g2.drawImage(bi,0,0, null);
g2.dispose();
这里监控鼠标,在原图形上画矩形,为什么画的矩形最上面都是在屏幕最顶上
x1,y1是鼠标按下的坐标
我明明drawRect的参数是以按下和Dragged的坐标的最小值啊
{
x2 = e.getX();
y2 = e.getY();
BufferedImage bi = new BufferedImage(im1.getWidth(null), im1.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D)bi.getGraphics();
g.drawImage(im1, 0,0, null);
g.setColor(Color.RED);
g.drawRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2 - x1) , Math.abs(y2 - y1));
g.dispose();
Graphics g2 = jl.getGraphics();
g2.drawImage(bi,0,0, null);
g2.dispose();
”为什么画的矩形最上面都是在屏幕最顶上“BufferedImage bi = new BufferedImage(im1.getWidth(null), im1.getHeight(null), BufferedImage.TYPE_INT_RGB); 这个 im1.getWidth(null), 没贴全代码吧BufferedImage bi = new BufferedImage(20,30,BufferedImage.TYPE_INT_RGB);