求解:程序中画出图片的坐标和ID怎样保存到数据库,还有applet怎样连接数据库,请各位网友帮忙,在此谢过!

解决方案 »

  1.   

    得到数据直接更新数据库就ok啦
    applet跟一般的连接没什么两样把
      

  2.   

    看看我的源码吧
    import javax.swing.*;
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.util.*;public class applet7 extends Applet {
    int count=6;
    Vector v=new Vector();
    Image[] img=new Image[count];
    int myWidth=0,myHeight=0;
    int widthcount=0;
    boolean[] b=new boolean[count];
    int[] width=new int[count],height=new int[count],w=new int[count],h=new int[count],wid=new int[count],hei=new int[count],ww=new int[count],hh=new int[count];
    int startX=0,startY=0,endX=0,endY=0;
    Canvas startObj=null,endObj=null;
    String drawclear="";
    int clickX=0,clickY=0,moveX=0,moveY=0;
    canvas[] can=null;
    myCanvas[] mycan=new myCanvas[count];
    Canvas curcan=null;
    Canvas curdelcan=null;
    Image curimg=null;
    JPanel jp=new JPanel(null);
    myCanvas drawLine=new myCanvas("drawLine");
    MediaTracker mt=new MediaTracker(this);public void init() {
    for(int j=0;j<count;j++){
      img[j]=this.getImage(this.getCodeBase(),"0.jpg");//获取图象
      }
    this.resize(800,600);
    this.setLayout(null);
    for(int i=0;i<img.length;i++)
      mt.addImage(img[i], 0);
    try {
      mt.waitForAll();
    } catch(Exception ex) {System.err.println(ex.toString());}
    this.add(jp);
    jp.setBounds(0,0,800,80);
    jp.add(this.drawLine);
    jp.setBackground(new Color(230,230,230));
    drawLine.setBounds(5,5,90,30);
    drawLine.addMouseListener(new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        clickdrawLine(e);
      }
    });
    for(int i=0;i<img.length;i++) {
      mycan[i]=new myCanvas(img[i]);
      width[i]=img[i].getWidth(this);
      height[i]=img[i].getHeight(this);
      jp.add(mycan[i]);
      mycan[i].setBounds(100+5*(i+1)+widthcount,5,img[i].getWidth(this),img[i].getHeight(this));
      widthcount+=img[i].getWidth(this);
    }
    this.addMouseListener(new MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        clickhere(e);
      }
    });
    }public void clickhere(MouseEvent e) {
    if(this.curcan==null)return;
    if(e.getModifiers()==MouseEvent.BUTTON3_MASK) {
      Canvas ca=new canvas(curimg);
      this.add(ca);
      ca.setBounds(e.getX(),e.getY(),curimg.getWidth(this),curimg.getHeight(this));
      this.validate();
    }
    }public void clickdrawLine(MouseEvent e) {
    if(drawLine.getBackground().equals(new Color(230,230,255))) {
      drawLine.setBackground(new Color(230,230,230));
      startObj=null;
      endObj=null;
      drawclear="";
    } else {
      drawLine.setBackground(new Color(230,230,255));
      drawclear="draw";
    }
    }public void paint(Graphics g) {
    for(int i=0;i<v.size();i++) {
      Vector v1=(Vector)v.elementAt(i);
      startX = ((int[])v1.elementAt(1))[0] + ((int[])v1.elementAt(1))[2] / 2;
      startY = ((int[])v1.elementAt(1))[1] + ((int[])v1.elementAt(1))[3] / 2;
      endX = ((int[])v1.elementAt(1))[4] + ((int[])v1.elementAt(1))[6] / 2;
      endY = ((int[])v1.elementAt(1))[5] + ((int[])v1.elementAt(1))[7] / 2;
      g.drawLine(startX, startY, endX, endY);
      drawArrowhead(g,((Canvas[])v1.elementAt(0))[0],((Canvas[])v1.elementAt(0))[1]);
    }
    }public void drawArrowhead(Graphics g,Canvas startObj,Canvas endObj) {
    double xx=0,yy=0,xx1=0,yy1=0,xx2=0,yy2=0;
    myWidth=myHeight=(int)Math.pow((double)(Math.pow(endObj.getWidth(),2d)+Math.pow(endObj.getHeight(),2d)),1/2d)/2;
    xx=endX-(endX-startX)*myWidth/Math.pow((double)(endX-startX)*(endX-startX)+(double)(endY-startY)*(endY-startY),1/2d);
    yy=endY-(endY-startY)*myHeight/(Math.pow((double)(endX-startX)*(endX-startX)+(double)(endY-startY)*(endY-startY),1/2d));
    xx1=xx-20*Math.cos(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
    yy1=yy-20*Math.sin(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
    xx2=xx-20*Math.sin(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
    yy2=yy-20*Math.cos(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
    if(startObj.getX()+startObj.getWidth()/2>endObj.getX()+endObj.getWidth()/2) {
      xx1=xx+20*Math.cos(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
      yy1=yy+20*Math.sin(Math.atan(((double)yy-startY)/((double)xx-startX))-radians(30));
      xx2=xx+20*Math.sin(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
      yy2=yy+20*Math.cos(radians(60)-Math.atan(((double)(yy-startY))/((double)(xx-startX))));
    }
    g.fillPolygon(new int[]{(int)xx2,(int)xx1,(int)xx},new int[]{(int)yy2,(int)yy1,(int)yy},3);
    }public double radians(int degrees) {
      return ((double)degrees)*Math.PI/180.0;
    }
      

  3.   

    接上面代码:
    //********************************************动态图标
    class canvas extends Canvas {
    Image im=null;
    public canvas(Image im) {
    super();
    this.setCursor(new Cursor(Cursor.MOVE_CURSOR));
    this.im=im;
    this.addMouseListener(new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        clickcanvas(e);
      }
    });
    this.addKeyListener(new KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        if(e.getKeyCode()==KeyEvent.VK_DELETE)
          removecanvas(e);
      }
    });this.addMouseMotionListener(new MouseMotionAdapter() {
      public void mouseDragged(MouseEvent e) {
        movecanvas(e);
      }
    });
    }public void movecanvas(MouseEvent e) {
    Canvas mcan=(Canvas)e.getSource();
    int mtop=mcan.getY(),mleft=mcan.getX(),mwidth=mcan.getWidth(),mheight=mcan.getHeight();
    mcan.setBounds(mleft+e.getX()-clickX,mtop+e.getY()-clickY,mwidth,mheight);
    for(int i=0;i<v.size();i++) {
      Vector v1=(Vector)v.elementAt(i);
      if(((Canvas[])v1.elementAt(0))[0].equals(mcan)) {
        ((int[])v1.elementAt(1))[0]=mcan.getX();
        ((int[])v1.elementAt(1))[1]=mcan.getY();
        ((int[])v1.elementAt(1))[2]=mcan.getWidth();
        ((int[])v1.elementAt(1))[3]=mcan.getHeight();
      } else if(((Canvas[])v1.elementAt(0))[1].equals(mcan)) {
        ((int[])v1.elementAt(1))[4]=mcan.getX();
        ((int[])v1.elementAt(1))[5]=mcan.getY();
        ((int[])v1.elementAt(1))[6]=mcan.getWidth();
        ((int[])v1.elementAt(1))[7]=mcan.getHeight();
      }
    }
    ((applet7)this.getParent()).repaint();
    }public void removecanvas(KeyEvent e) {
    try {
      Canvas mcan=(Canvas)e.getSource();
      ((applet7)this.getParent()).remove(curdelcan);
      for(int i=v.size()-1;i>=0;i--) {
        Vector v1 = (Vector) v.elementAt(i);
        if(((Canvas[])v1.elementAt(0))[0].equals(mcan)||((Canvas[])v1.elementAt(0))[1].equals(mcan))
          v.removeElementAt(i);
      }
      ((applet7)this.getParent()).validate();
      ((applet7)this.getParent()).repaint();
    }catch(NullPointerException ex){return;}
    }
    public void clickcanvas(MouseEvent e) {
      curdelcan=(Canvas)e.getSource();
      clickX=e.getX();
      clickY=e.getY();
      ((applet7)this.getParent()).repaint();
      if(((applet7)this.getParent()).drawclear.equals(""))return;
      if(((applet7)this.getParent()).startObj==null&&((applet7)this.getParent()).endObj==null)
        ((applet7)this.getParent()).startObj=(Canvas)e.getSource();
      else if(((applet7)this.getParent()).startObj!=null&&((applet7)this.getParent()).endObj==null&&((applet7)this.getParent()).startObj!=(Canvas)e.getSource()) {
        ((applet7)this.getParent()).endObj=(Canvas)e.getSource();
        Vector v1=new Vector();
        v1.addElement(new Canvas[]{startObj,endObj});
        v1.addElement(new int[]{startObj.getX(),startObj.getY(),startObj.getWidth(),startObj.getHeight(),endObj.getX(),endObj.getY(),endObj.getWidth(),endObj.getHeight()});
        v.addElement(v1);
        ((applet7)this.getParent()).drawclear="";
        ((applet7)this.getParent()).drawLine.setBackground(null);
        ((applet7)this.getParent()).startObj=null;
        ((applet7)this.getParent()).endObj=null;
      }
    }public void paint(Graphics g) {
    g.drawImage(im,0,0,this);
    }
    }//****************************************************图标工具栏
    class myCanvas extends Canvas {
    Image im=null;
    String str="";
    public myCanvas(String s) {
    super();
    this.str=s;
    }public myCanvas(Image im) {
    super();
    this.setCursor(new Cursor(Cursor.HAND_CURSOR));
    this.im=im;
    this.addMouseListener(new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        clickmyCanvas(e);
      }
    });
    }public void clickmyCanvas(MouseEvent e) {
      ((applet7)this.getParent().getParent()).drawLine.setBackground(null);
      ((applet7)this.getParent().getParent()).drawclear="";
      ((applet7)this.getParent().getParent()).startObj=null;
      ((applet7)this.getParent().getParent()).endObj=null;
      curcan=(Canvas)e.getSource();
      curimg=(Image)im;
    }public void paint(Graphics g) {
    if(str.equals(""))
      g.drawImage(im,0,0,this);
    else {
      g.drawString(str,20,getHeight()/2);
    }
    }
    }
    }
      

  4.   

    测试连接不了MSSQLserver数据库,请教哪位有这方面经验的朋友帮忙
      

  5.   

    个人认为不应该通过applet直接操作数据库,可以通过applet发http请求,再又服务器端连接数据库进行操作
      

  6.   

    请上面的朋友能说得详细点好吗?或者给我个示例给我好吗[email protected]
      

  7.   

    applet直接操作数据库,系统处于安全的考虑,一般是不允许的