书上的一个例子,用组播技术实现网络聊天,但我如果setLoopbackMode(true),也就是不收到自已发送的消息后,也收不到别人发的消息了,不禁用这种功能则可以。这是为什么?有2个类,一个是启动类,一个是实现类(窗体)。是用jbuilder写的,所以用jbuilder看起来更方便。
启动类如下:
package frames;import javax.swing.UIManager;
import java.awt.*;/**
*启动FrmWhiteBoard的主类
*/public class AppWhiteBoard {
boolean packFrame = false; //Construct the application
public AppWhiteBoard() {
FrmWhiteBoard frame = new FrmWhiteBoard();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
boolean flag=true;
while (flag){
flag=frame.waitforpackets();
} } //Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new AppWhiteBoard();
}
}另外一个程序贴不上,请看我的博客:http://blog.sina.com.cn/u/491fec8d010004lq
启动类如下:
package frames;import javax.swing.UIManager;
import java.awt.*;/**
*启动FrmWhiteBoard的主类
*/public class AppWhiteBoard {
boolean packFrame = false; //Construct the application
public AppWhiteBoard() {
FrmWhiteBoard frame = new FrmWhiteBoard();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
boolean flag=true;
while (flag){
flag=frame.waitforpackets();
} } //Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new AppWhiteBoard();
}
}另外一个程序贴不上,请看我的博客:http://blog.sina.com.cn/u/491fec8d010004lq
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货