有一个错误总是出现invalid method declaration;return tryp required Shanghai_Frame不知道怎么改,以下是程序段
import java.net.*;
import java.awt.*;
import java.awt.event.*;
class Shanghai_Fram extends Frame implements Runnable,ActionListener
 { TextField out_message=new TextField("发送数据到北京:");
   TextArea in_message=new TextArea();
   Button b=new button("发送数据包到北京");
  Shanghai_Frame()
   { super("我是上海");
     setSize(200,200);setVisible(ture);
     b.addActionListener(this);
     add(out_message,"South");add(in_message,"Center");add(b,"North");
     Thread thread=new Thread(this);
     thread.start();//线程负责接收数据包
    }
    public void actionPerformed(ActionEvent event)//单击按扭发送数据包
    { byte buffer[]=out_message.getText.trim().getBytes();
      try {InetAddress address=InetAddress.getByName("127.0.0.1");
           DatagramPacket data_pack=new  DatagramPacke(buffer,buffer.length,address,888);
           DatagramSocket mail_data=new DatagramSocket();
           in_message.append("数据包目标主机地址:"+data_pack.getAddress()+"\n");
           in_message.append("数据包目标端口是:"+data_pack.getPort()+"\n");
           in_message.append("数据包长度:"+data_pack.getLenght()+"\n");
           mail_data.send(data_pack);
          }
      catch(Exception e){}
    }
    public void run()
    {  DatagramPacket pack=null;
       DatagramSocket mail_data=null;
       byte data[]=new byte[8192];
       try{ pack=new DatagramPacket(data,data.length);
            mail_data=new DatagramSocket(666);
          }
       catch(Exception e){}
       while(ture)
         { if(mail_data==null) break;
           else
             try{ mail_data.receive(pack);
                  int length=pack.getLength();
                  InetAddress address=pack.getAddress();
                  int port=port.getPort();
                  String message=new String(pack.getData(),0,length);
                  in_message.append("收到数据长度:"+length+"\n");                 in_message.append("收到数据来自:"+address+"端口:"+port+"\n");
                  in_message.append("收到数据是:"+message+"\n");
                 }
             catch(Exception e){}
         }
     }
  }
public class Shanghai
 { public static void main(String arg[])
   {  Shanghai_Frame shanghai_win=new Shanghai_Frame();
      shanghai_win.addWindowListener(new WindowAdapter()
        { public void windowClosing(WindowEvent e)
           {system.exit(0);
            }
         } );
       shanghai_win.validate();
    }
  }

解决方案 »

  1.   

        Shanghai_Frame() 
          {   super("我是上海"); 
              setSize(200,200);setVisible(ture); 
              b.addActionListener(this); 
              add(out_message,"South");add(in_message,"Center");add(b,"North"); 
              Thread   thread=new   Thread(this); 
              thread.start();//线程负责接收数据包 
            } 
    这个方法名错了.这个方法应该是构造方法,但是名字和类名却不一样,所以编译器把它当普通方法对待,普通方法就要求必须有返回类型的声明看了下代码,推测出楼主的类名写错了,
    class   Shanghai_Fram   extends   Frame   implements   Runnable,ActionListener 少了个e