package meeting;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
     public class MeetFrame extends JFrame{
     private JPanel contentPane;
     private TextField textField1=new TextField();
     private TextField textField2=new TextField();
     private TextField textField3=new TextField();
     private Button button1=new Button();
       private Button button2=new Button();
       private Label label1=new Label();
       private Label label2=new Label();
       private Label label3=new Label();
       private TextArea textArea1=new TextArea();
       int port;
       MulticastSocket socket;
       InetAddress group;
       DatagramPacket packet;
       String user=new String();
       boolean connected=false;
    /** Creates a new instance of Main */
    public MeetFrame() {
         
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        try{
             
        toInit();
        }catch(Exception e)
        {
        e.printStackTrace();
        }
    }
    
   private void toInit() throws Exception
   {
   contentPane=(JPanel) this.getContentPane();
   contentPane.setLayout(null);
   this.setSize(new Dimension(300,300));
   this.setTitle("netmeeting");
   textField1.setBounds(new Rectangle(90,260,200,20));
   textField2.setBounds(new Rectangle(90,20,65,20));
   textField3.setBounds(new Rectangle(210,20,80,20));
   textField1.setText("224.0.0.1");
   label1.setBounds(new Rectangle(20,260,60,20));
   label1.setBounds(new Rectangle(10,20,60,20));
   label1.setBounds(new Rectangle(160,20,40,20));
   label1.setText("input message");
   label2.setText("input ip");
   label3.setText("input user");
   textArea1.setBounds(new Rectangle(20,60,320,180));
   textArea1.setEditable(false);
   button1.setLabel("SEND MESSAGE");
   button1.setBounds(new Rectangle(20,60,320,180));
   button1.addActionListener(new java.awt.event.ActionListener() {
   public void actionPerformed(ActionEvent e) {
              button1_actionPerformed(e);
           };
       });
       ///
       button2.setLabel("GO TNTO meeting");
       button2.setBounds(new Rectangle(20,60,320,180));
       button2.addActionListener(new java.awt.event.ActionListener() {
           public void actionPerformed(ActionEvent e) {
              button2_actionPerformed(e);
           };
       });
       contentPane.add(textField1,null);
       contentPane.add(textField2,null);
       contentPane.add(textField3,null);
       contentPane.add(button1,null);
       contentPane.add(button2,null);
       contentPane.add(label1,null);
       contentPane.add(label2,null);
       contentPane.add(label3,null);
       contentPane.add(textArea1,null);
   }
    protected void processWindowEvent(WindowEvent e)
    {
    super.processWindowEvent(e);
    if(e.getID()==WindowEvent.WINDOW_CLOSING){
    System.exit(0);
    }
    }
    public void createMeetAndJoin()
    {
    String str1=new String();
    String str2=new String();
    str1=textField2.getText();
    str2=textField3.getText();
    if(str1.compareTo("")!=0&&str2.compareTo("")!=0)
    {
    try{
        user=str2;
        port=1234;
        socket=new MulticastSocket(port);
        socket.setTimeToLive(5);
        socket.joinGroup(group);
        label2.setText("IN GROUP");
        connected=true;
    
   }
    catch(Exception e1)
    {
    System.out.println("eRROR1"+e1);
    }
    byte[] data=new byte[512];
    packet=new DatagramPacket(data,data.length,group,port);
    try
    {
    String str=new String();
    str=user+"IN GROUP"+textField2.getText();
    data=str.getBytes();
    packet.setData(data);
    socket.send(packet);
    }
    catch(Exception e)
    {
    System.out.println("error2"+e);
    }
  //  Listener lister=new Listener(socket,textArea1);
   // lister.start();
    }
    else
    {
    textArea1.setText("please check ip");
    }
    }
    public void sendData()
    {
    try
    {
    String str=new String();
    str=user+":"+textField1.getText();
    byte[] data=str.getBytes();
    packet.setData(data);
    socket.send(packet);
    }
    catch(Exception e1)
    {
    System.out.println("error3"+e1);
    }
    }
    void button1_actionPerformed(ActionEvent e)
    {
    sendData();
    }
    void button2_actionPerformed(ActionEvent e)
    {
    if(!connected)
    {
    createMeetAndJoin();
    }
    else
    {
    textArea1.setText("please send messges!");
    }
    }
}
我在另一个类的主方法中,NEW 一这个类的实例,但并不显示界面。也没有任何错误.你可以拷到自己机子上试一下,帮我把界面弄出来。谢谢!

解决方案 »

  1.   

    我试了有界面显示出来啊,就这几行代码:
    import meeting.MeetFrame;
    public class MeetFrameTest
    {
    public static void main(String[] args)
    {
    MeetFrame m = new MeetFrame();
    m.setVisible(true);
    }
    }
    你是不没有设setVisible方法为true啊
      

  2.   

    做界面的程序有一个重要的事情就是要让你的界面的可见属性为真,这样才能看到你想要的效果.要不然是看不到的,但是你的后台已经有一个javaw.exe进程来专门运行这个程序了.所以你要在界面布置时候将方法setVisible(boolean);设成true