* @author not attributable
 * @version 1.0
 */
import java.awt.*;
import java.awt.event.*;
import sun.net.ftp.*;
import sun.net.*;
import java.applet.*;
import java.io.*;
import java.io.IOException;
import java.util.StringTokenizer;
import sun.net.ftp.FtpClient;
class menuWindow extends Frame implements ActionListener
{
    MenuBar menubar;
    Menu menu1,menu2;
    MenuItem item1,item2;
    String server;
     String user;
     String password;
     String ftppath,savepath;
     FtpClient  ftpC;
     public String a;    menuWindow(String s,int a,int b)
    {
        super(s);
        menubar=new MenuBar();
        menu1=new Menu("文件");
        menu2=new Menu("日志");
        item1=new MenuItem("开始");
        item2=new MenuItem("查看日志");
        setLayout(new GridLayout(1,1));
        setSize(a,b);
        setBackground(Color.CYAN);
        setVisible(false);
        item1.addActionListener(this);
        item2.addActionListener(this);
        menu1.add(item1);
        menu2.add(item2);
        menubar.add(menu1);
        menubar.add(menu2);
        setMenuBar(menubar);
        server="135.1.9.234";
        user="root";
        password="sgh4884";
        ftppath="omp\\omp-data\\watchmrk\\";
        savepath="E:\\download\\";    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==item1)
        {
            System.out.print("2222");
            try
            {
                ftpC = new FtpClient();
                //创建FtpClient对象
                ftpC.openServer(server);
                //连接FTP服务器
                System.out.println("OK1");
                ftpC.login(user, password);
                //登录FTP服务器
                System.out.println("OK2");
                if (ftppath.length() != 0) ftpC.cd(ftppath);
                System.out.println("OK3");                //下载一个文件
                ftpC.binary();                TelnetInputStream is = ftpC.get("08030316.smdump");
                System.out.println("OK4");
                File file_out = new File(savepath+"08030316.smdump");
                System.out.println("OK5");
                FileOutputStream os = new FileOutputStream(file_out);
                byte[] bytes = new byte[1024];
                int c;
                while ( (c = is.read(bytes)) != -1) {
                    os.write(bytes, 0, c);
                }
                is.close();
                os.close();                ftpC.closeServer(); //退出FTP服务器
                System.out.println("OK6");
            }
            catch(FtpLoginException ex)
            {
                a="登陆主机:"+server+"失败!请检查用户名或密码是否正确:"+ex;
                System.out.println(a);
//return false;
            }
            catch (IOException ex)
            {
                a="连接主机:"+server+"失败!请检查端口是否正确:"+ex;
                System.out.println(a);
//return false;
            }
            catch(SecurityException ex)
            {
                a="无权限与主机:"+server+"连接!请检查是否有访问权限:"+ex;
                System.out.println(a);
//return false;
            }
        }
        else if(e.getSource()==item2)
        {
            System.out.println("abcd");
        }
    }
}public class myftp extends Applet{
    menuWindow m;    public myftp()
    {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }    public void init()
    {
        m=new menuWindow("文件修改",60,60);
        m.setVisible(true);
        System.out.println("111111111");
    }    private void jbInit() throws Exception
    {
    }}

解决方案 »

  1.   

    个人认为不需要在public void actionPerformed(ActionEvent e) {}这个里边写代码吧,只需要实现接口ActionListener就可以。
      

  2.   

    public static void main(String arg[])
        {
            m=new menuWindow("文件修改",60,60);
            m.setVisible(true);
            System.out.println("111111111");
        } 直接这样执行看看可以不
      

  3.   

    可能跟从Applet中将下载的文件写入本机有关
      

  4.   

    把关于FTP的操作放在一个线程里试下