applet类里没有FileDialog成员,而且applet是客户端的东西,要完成这些功能似乎要配合数字签名的安全策略

解决方案 »

  1.   

    我也知道applet类里没有FileDialog成员,所以才问有没有合适的解决方案.
      

  2.   

    利用数字签名超越Java Applet的安全限制,这个我知道,但是我这个问题具体怎么解决呢??请一定帮帮忙,不胜感谢!!!
      

  3.   

    首先要保证Applet显示出来,然后才是数字签名解决"不能读写本地文件系统"的限制.所以我求各位大侠帮我解决如何突破"appletapplet类里没有FileDialog成员"这个问题.即让Applet显示出来!!!
      

  4.   

    其实建立一个Frame作为Dialog的载体就可以了,如下:
    import java.awt.*;
    import java.applet.*;public class applet8 extends Applet {
      TextField filename = new TextField(20);
      TextField directory = new TextField(20);
      Button open = new Button("Open");
      Button save = new Button("Save");
      Frame myFrame=new Frame();
      public void init() {
        Panel p = new Panel();
        p.setLayout(new FlowLayout());
        p.add(open);
        p.add(save);
        add("South", p);
        directory.setEditable(false);
        filename.setEditable(false);
        p = new Panel();
        p.setLayout(new GridLayout(2,1));
        p.add(filename);
        p.add(directory);
        add("North", p);
      }
      public boolean handleEvent(Event evt) {
        if(evt.id == Event.WINDOW_DESTROY)
          System.exit(0);
        else
          return super.handleEvent(evt);
        return true;
      }
      public boolean action(Event evt, Object arg) {
        if(evt.target.equals(open)) {
          // Two arguments, defaults to open file:
          FileDialog d = new FileDialog(myFrame,
            "What file do you want to open?");
          d.setFile("*.java"); // Filename filter
          d.setDirectory("."); // Current directory
          d.show();
          String openFile;
          if((openFile = d.getFile()) != null) {
            filename.setText(openFile);
            directory.setText(d.getDirectory());
          } else {
            filename.setText("You pressed cancel");
            directory.setText("");
          }
        }
        else if(evt.target.equals(save)) {
          FileDialog d = new FileDialog(myFrame,
            "What file do you want to save?",
            FileDialog.SAVE);
          d.setFile("*.java");
          d.setDirectory(".");
          d.show();
          String saveFile;
          if((saveFile = d.getFile()) != null) {
            filename.setText(saveFile);
            directory.setText(d.getDirectory());
          } else {
            filename.setText("You pressed cancel");
            directory.setText("");
          }
        }
        else
          return super.action(evt, arg);
        return true;
      }
    }
      

  5.   

    非常感谢beyond_xiruo(希偌) !!!,分都给你!!!