你这个东西就有点搞笑了..                你问的东西是什么?  是不能响应 还是不知道自己该怎么响应.?.很明显你没有相应的 左转右转的 事件响应.    public void actionPerformed(ActionEvent evt) { JButton ac = (JButton) evt.getSource(); String com = evt.getActionCommand(); // Button b = (Button) evt.getSource(); // if (evt.getSource() == bt2) { // File Open Button // openImage(); // return; // } else if (ac.getLabel().equals("original")) { command = SHOW_NORM; } else if (ac.getLabel().equals("LeftRight")) { command = SHOW_HORIZONTAL; } else if (ac.getLabel().equals("UpDown")) { command = SHOW_VERTICAL; } reDraw(command); if (com.equals("-20%")) { if (scale > -4) scale--; int h = (int) (origin.getHeight(this) * (1 + 0.2 * scale)); int w = (int) (origin.getWidth(this) * (1 + 0.2 * scale)); im = origin.getScaledInstance(w, h, Image.SCALE_DEFAULT); flag = false; } if (com.equals("+20%")) { scale++; int h = (int) (origin.getHeight(this) * (1 + 0.2 * scale)); int w = (int) (origin.getWidth(this) * (1 + 0.2 * scale)); im = im.getScaledInstance(w, h, Image.SCALE_DEFAULT); flag = false; } if (ac.getLabel().equals("File Open")) { FileDialog opens = new FileDialog(this, "open", FileDialog.LOAD); opens.show(); img = opens.getDirectory() + opens.getFile(); images = getAllImageFile(opens.getDirectory()); for (int i = 0; i < images.length; i++) { if (images[i].getPath().equals(img)) { imgIndex = i; } } flag = true; scale = 0; } if (ac.getLabel().equals("Back")) { if (imgIndex > 0) { img = images[--imgIndex].getPath(); } flag = true; scale = 0; } if (ac.getLabel().equals("Next")) { if (imgIndex < images.length - 1) { img = images[++imgIndex].getPath(); } flag = true; scale = 0; } setTitle(img); uf.repaint(); }很明显你的事件响应最终只到 Next上.. 你自己都没写事件相应的方法. 你还在这问 为什么不响应..真是怀疑这代码是不是你写的.
好 . 那就推论到你不知道该怎么写.    左右转我想到的办法是 把每一个点的像素值拿到..做矩阵变换.  可能比较笨...不排除有更好的..

解决方案 »

  1.   

    我有web的,你看看
    package com.image;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;import java.awt.image.BufferedImage;
    import com.sun.image.codec.jpeg.*;
    import com.image.PicZoom;
    public class ImageHandlerServlet extends HttpServlet{
    protected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
    String strId = req.getParameter("id");
    if (null==strId || strId.equals("")){
    throw new ServletException("图像参数错");
    }
    int id=Integer.parseInt(strId);
    String srcImgFileName=null;
    switch(id){
    case 1:
      srcImgFileName = getServletContext().getRealPath("/")+"images/1.jpg";
      break;
    case 2:
      break;
    default:
      throw new ServletException("图像参数错");
    }
    resp.setContentType("image/jpeg");
    ServletOutputStream sos = resp.getOutputStream();

    //调用picZoom类的方法对图像缩放
    BufferedImage buffImg = PicZoom.zoom(srcImgFileName,80,80);

    //搞jpeg图像解码器,用于编码内存中的图像数据支JPeg数据输出流
    JPEGImageEncoder jpgEncoder=JPEGCodec.createJPEGEncoder(sos);

    //编码BufferedImage对像到JPEG数据输出流
    jpgEncoder.encode(buffImg);
    sos.close();
    }
    public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{


    }
    public void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
    doGet(req,resp);
    }
    }
    ------------------------------------------
    package com.image;
    import java.awt.Color;
    import java.awt.Image;
    import java.awt.image.*;
    import java.awt.Graphics2D;
    import javax.swing.ImageIcon;public class PicZoom{
    public static BufferedImage zoom(String srcFileName,int outputWidth,int outputHeight){
    //用图像文件名,搞ImageIcon对象
    ImageIcon imgIcon=new ImageIcon(srcFileName);
    //得到Image对象
    Image img=imgIcon.getImage();
    return zoom(img,outputWidth,outputHeight);
    }
    public static BufferedImage zoom(Image srcImage,int outputWidth,int outputHeight){
    //搞一个定义的图像的BufferImage
    BufferedImage buffImg = new BufferedImage(outputWidth,outputHeight,BufferedImage.TYPE_INT_BGR);
    //搞Graphics2D对象用于在BufferedImage 上绘图
    Graphics2D  g = buffImg.createGraphics();
            //设置图形上下文的当前顏色为white
            g.setColor(Color.WHITE);
            //用图形上下文的当前顏色填充指定的矩形区域
            g.fillRect(0,0,outputWidth,outputHeight);
            //按照缩放的大小在BufferedImage对象上绘制原始图像
            
            g.drawImage(srcImage,0,0,outputWidth,outputHeight,null);
            g.dispose();
            return buffImg;
    }
    }
    ---------------
    <html>
      <head>
      </head>
      <body>
        <img src="image?id=1">
      </body>
    </html>
    ------------------
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       version="2.5">     <servlet>
        <servlet-name>ImageHandlerServlet</servlet-name>
        <servlet-class>com.image.ImageHandlerServlet</servlet-class>
      </servlet> 
      <servlet-mapping>
        <servlet-name>ImageHandlerServlet</servlet-name>
          <url-pattern>/image</url-pattern>
      </servlet-mapping>
    <servlet>
        <servlet-name>ShowBookServlet</servlet-name>
        <servlet-class>com.book.servlet.ShowBookServlet</servlet-class>
      </servlet> 
      <servlet-mapping>
        <servlet-name>ShowBookServlet</servlet-name>
          <url-pattern>/search</url-pattern>
      </servlet-mapping></web-app>