各位高手帮帮忙,本人写了个JAVA APPLET的画板,现在要增加一个能够自由添加文字的功能,文字最好能用鼠标移动的,最后还要保存整个画板,我该怎么做呢?最好有代码,谢谢啦(十万火急)

解决方案 »

  1.   

    个人感觉先在DIV上写上文字,再做个截图效果,然后图片保存下来,具体代码 估计得请高人了
      

  2.   

    不是这样的喽,我这个画板程序是用applet写的.所以用不了DIV哦.很感谢回复
      

  3.   


    给applet添加一个文本框,textarea,添加一个配监听器,监听鼠标移动事件.
    当鼠标按下的时候,移动文本框的坐标就好了!
      

  4.   

    你的文件要保存在服务器上吧?
    建议用socket实现,保存客户端,要签名,比较麻烦用java.net包建立双向通讯   第二种方法是利用java.net包提供的网络能力。以有连接流通讯方式为例,在服务器端的操作为一般为:   ⑴ 创建一个ServerSocket对象,在指定端口监听客户端发来的请求。   ⑵ 在接收到请求时accept()方法将返回一个Socket对象。   ⑶ 用上述Socket对象创建输入、输出流对象。   ⑷ 通过输入、输出流与客户交互。   ⑸ 交互完毕,关闭输入、输出流与Socket。   ⑹ 服务程序运行结束,关闭ServerSocket。   实现代码代码类如:try{boolean flag=true;
    Socket clientSocket=null;ServerSocket serverSocket = new ServerSocket(0);
    System.out.println("Server listen on: " +serverSocket.getLocalPort());
    while(flag){
    clientSocket=serverSocket.accept();
    DataInputStream is=new DataInputStream( new bufferedInputStream(clientSocket.getInputStream()));
    PrintStream os=new PrintStream( new bufferedOutputStream(clientSocket.getOutputStream()));
    // 处理Applet请求
    os.close();
    is.close();
    clientSocket.close();
    }
    serverSocket.close();
    }catch( IOException e){
    System.err.println(" Exception: "+e);
    }   在客户端的操作为:   ⑴ 创建Socket对象建立与服务器的连接。   ⑵ 用该Socket对象创建输入、输出流。   ⑶ 与服务器交互。   ⑷ 交互完毕,关闭输入、输出流与Socket。   实现代码类如:
    try {
    Socket clientSocket =new Socket("serverName",7);
    OutputStream os=clientSocket.getOutputStream();
    DataInputStream is=new DataInputStream( clientSocket.getInputStream());
    // 其它操作.
    os.close();
    is.close();
    clientSocket.close();
    }catch(Exception e){
    System.err.println("Exception:"+e);
    }   这种方法只依赖于标准的Java网络支持,不需要用到附加的软件包或工具, 因此显得相当简洁和灵活,易于实现某些特殊的需要。但在另一方面,服务器端对进入请求以及客户端对返回结果的分析工作量较大。如果服务器端要执行大量的操作,可以考虑使用RMI。
      

  5.   

    applet添加一个文本框,textarea,上面的代码,封装成一个方法,移动的时候要重绘面板,回显内容,呵呵
      

  6.   

    /**
     * @(#)CnToSpell.java
     * 版权声明 Easydozer 版权所有 违者必究
     *
     * 修订记录:
     * 1)更改者:Easydozer
     * 时 间:2004-10-20 
     * 描 述:创建
     */import java.applet.Applet;
    import java.awt.Color;
    import java.awt.Event;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.Label;
    import java.awt.TextField;class APP extends Applet {
    Label label = new Label("移动文字");
    TextField text = new TextField(10); public void init() {
    add(label);
    add(text);
    } public void paint(Graphics g) {
    g.setColor(Color.red);
    g.setFont(new Font("Helvetica", Font.PLAIN, 24));
    g.drawString("文字!", 0, 0);//也可以这样画文字的,呵呵
    } public boolean action(Event e, Object o) {
    int x = e.x;
    int y = e.y;
    //这个获取鼠标的坐标
    return true; }}
      

  7.   


    public boolean action(Event e, Object o) {
            int x = e.x;
            int y = e.y;
            //这个获取鼠标的坐标
            return true;    }
    action事件里面处理呀,移动他们的坐标就好了!
    或者重新 public void paint(Graphics g)
      

  8.   


    public boolean action(Event e, Object o) {
            int x = e.x;
            int y = e.y;
            //这个获取鼠标的坐标
            return true;    }
    事件代码,移动控件的xy坐标
    或者重新paint(Graphics g)