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 一这个类的实例,但并不显示界面。也没有任何错误.你可以拷到自己机子上试一下,帮我把界面弄出来。谢谢!
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 一这个类的实例,但并不显示界面。也没有任何错误.你可以拷到自己机子上试一下,帮我把界面弄出来。谢谢!
import meeting.MeetFrame;
public class MeetFrameTest
{
public static void main(String[] args)
{
MeetFrame m = new MeetFrame();
m.setVisible(true);
}
}
你是不没有设setVisible方法为true啊