⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用java编制internet电子白板软件.mht

📁 用JAVA编制Internet电子白板软件
💻 MHT
📖 第 1 页 / 共 5 页
字号:
int=20
roomCount() {<BR>return rooms.length;<BR>} //method 'roomCount' =
ended<BR><BR>}=20
// class 'RoomGroup' ended<BR><BR>// class =
3:'Room'=A3=ACRoomGroup=D2=FD=D3=C3=B5=C4=CA=FD=BE=DD=C0=E0<BR>class=20
Room {<BR><BR>String subject=3Dnull;<BR>int ID=3D0;<BR>Vector=20
users=3Dnull;<BR><BR>Room(String s,int ID)=20
{<BR>subject=3Ds;<BR>this.ID=3DID;<BR>users=3Dnew =
Vector(10,5);<BR><BR>}// constructor=20
1 ended<BR><BR>public void join(User user)=20
{<BR>users.addElement(user);<BR>user.roomID=3DID;<BR>user.paused=3Dfalse;=
<BR>}//=20
method 'join' ended<BR><BR>public void quit(User user) throws =
NotMemberException=20
{<BR>if (users.contains(user)) =
{<BR>users.removeElement(user);<BR>}else<BR>throw=20
new NotMemberException();<BR>}// method 'quit' ended<BR><BR>public =
String[]=20
getUsersName() {<BR><BR>String[] usersName=3Dnull;<BR><BR>if =
(users.size()!=3D0)=20
{<BR>usersName=3Dnew String[users.size()];<BR>for(int i=3D0;i&lt;=20
usersName.length;i++)=20
{<BR>usersName[i]=3D((User)(users.elementAt(i))).name;<BR>}<BR>return=20
usersName;<BR>}else {<BR>return null;<BR>}<BR>}<BR>// method =
'getUsersName'=20
ended<BR><BR>public String getRoomName() {<BR>return subject;<BR>}// =
method=20
'getRoomName' ended<BR><BR>public int getUserCount() {<BR>return=20
users.size();<BR>}// method 'getUserCount' ended<BR><BR>} // class =
'Room'=20
ended<BR><BR>//class =
4:'User'=A3=AC=B7=FE=CE=F1=C6=F7=D2=FD=D3=C3=B5=C4=D3=C3=BB=A7=B7=FE=CE=F1=
=CF=DF=B3=CC=C0=E0<BR>class User extends Thread=20
{<BR><BR>String name=3Dnull;<BR>int ID=3D0;<BR>boolean =
paused=3Dfalse;<BR>boolean=20
used=3Dfalse;<BR>boolean belongRoom=3Dfalse;<BR>boolean=20
logged=3Dfalse;<BR>DataInputStream io_in=3Dnull;<BR>DataOutputStream=20
io_out=3Dnull;<BR>int roomID=3D0;<BR>ServerSocket ss=3Dnull;<BR>Socket=20
s=3Dnull;<BR>User[] users=3Dnull;<BR>RoomGroup =
roomGroup=3Dnull;<BR>TextArea=20
message_TextArea=3Dnull;<BR>ChatServer =
chatServer=3Dnull;<BR><BR>User(ChatServer=20
chatServer,int ID)=20
{<BR>this.message_TextArea=3DchatServer.message_TextArea;<BR>this.ss=3Dch=
atServer.ss;<BR>this.users=3DchatServer.users;<BR>this.roomGroup=3DchatSe=
rver.roomGroup;<BR>this.ID=3DID;<BR>this.chatServer=3DchatServer;<BR>}// =

CONSTRATOR 1 ended<BR><BR>public void run()=20
{<BR>used=3Dfalse;<BR>try{<BR>while(true){<BR>String=20
message=3Dnull;<BR>s=3Dss.accept();<BR>message_TextArea.appendText("\nCha=
nnel "+ID+"=20
socket opened");<BR>io_in=3Dnew =
DataInputStream(s.getInputStream());<BR>io_out=3Dnew=20
DataOutputStream(s.getOutputStream());<BR>used=3Dtrue;<BR>logged=3Dfalse;=
<BR>try{<BR>while(used)=20
{<BR>message=3Dio_in.readUTF();<BR>message_TextArea.appendText("\nChannel=
"+ID+"("+<BR>name+"):receive:"+message);<BR>chatServer.num_Line++;<BR>if =

(chatServer.num_Line &gt;150)=20
{<BR>message_TextArea.setText("");<BR>chatServer.num_Line=3D0;<BR>}<BR>if=
=20
(message.equals("text")) sendText();<BR>else if (message.equals("draw")) =

sendDraw();<BR>else {<BR>commandCenter(message,new=20
DataBag("none","none",0,0,0,0,0));<BR>if<BR>((message.equals("new"))|(mes=
sage.equals("join")))=20
<BR>refreshToAll();<BR>else if (message.equals("quit"))=20
refreshToAllNotMe();<BR>}<BR>}<BR>}catch(PleaseCloseSocketException e)=20
{<BR>}catch(IOException e){<BR>}finally=20
{<BR>try{<BR>roomGroup.quit(roomID,this);<BR>refreshToAllNotMe();<BR>}cat=
ch(Exception=20
e){}<BR>socketClose();<BR>used=3Dfalse;<BR>logged=3Dfalse;<BR>}<BR>}<BR>}=
catch(IOException=20
e){<BR>System.out.println(e);<BR>}<BR>}// method 'run' =
ended<BR><BR>public void=20
destroy() {<BR>socketClose();<BR>this.stop();<BR>}// method 'destroy'=20
ended<BR><BR>public void socketClose()=20
{<BR>try{<BR>io_in.close();<BR>io_in=3Dnull;<BR>}catch(Exception=20
e){}<BR>try{<BR>io_out.flush();<BR>io_out.close();<BR>io_out=3Dnull;<BR>}=
catch(Exception=20
e){}<BR>try{<BR>s.close();<BR>s=3Dnull;<BR>}catch(Exception e){}<BR>}// =
method=20
'socketClose' ended<BR><BR>public void sendText() throws=20
PleaseCloseSocketException {<BR><BR>String message=3Dnull;<BR>DataBag=20
data=3Dnull;<BR>try{<BR>synchronized=20
(this){<BR>message=3Dio_in.readUTF();<BR>}<BR>data=3Dnew=20
DataBag(name,message,0,0,0,0,0);<BR>for(int i=3D0;i&lt; =
users.length;i++) {<BR>if=20
((users[i].logged)&amp;&amp;(users[i].ID!=3DID)&amp;&amp;<BR>(!users[i].p=
aused)&amp;&amp;(users[i].roomID=3D=3DroomID))<BR>users[i].commandCenter(=
"server_ask_text",data);<BR>}<BR>}catch(IOException=20
e){<BR>throw new PleaseCloseSocketException();<BR>}<BR>}// method =
'sendText'=20
ended<BR><BR>public void sendDraw() throws PleaseCloseSocketException=20
{<BR><BR>String message=3Dnull;<BR>int =
color=3D0,x0=3D0,y0=3D0,x1=3D0,y1=3D0;<BR>DataBag=20
data=3Dnull;<BR>try{<BR>synchronized (this)=20
{<BR>color=3Dio_in.readInt();<BR>x0=3Dio_in.readShort();<BR>y0=3Dio_in.re=
adShort();<BR>x1=3Dio_in.readShort();<BR>y1=3Dio_in.readShort();<BR><BR>}=
<BR>data=3Dnew=20
DataBag("none","none",color,x0,y0,x1,y1);<BR>for(int i=3D0;i&lt; =
users.length;i++)=20
{<BR>if=20
((users[i].logged)&amp;&amp;(users[i].ID!=3DID)<BR>&amp;&amp;(!users[i].p=
aused)&amp;&amp;(users[i].roomID=3D=3DroomID))<BR>users[i].commandCenter(=
"server_ask_draw",data);<BR>}<BR>}catch(IOException=20
e){<BR>throw new PleaseCloseSocketException();<BR>}<BR>}// method =
'sendDraw'=20
ended<BR><BR><BR>public void refreshToAll() throws =
PleaseCloseSocketException=20
{<BR>for(int i=3D0;i&lt; users.length;i++) {<BR>if=20
(users[i].logged)<BR>users[i].commandCenter("server_ask_refresh",new<BR>D=
ataBag("none","none",0,0,0,0,0));<BR>}<BR>}//=20
method "refreshToAll" ended<BR><BR>public void refreshToAllNotMe() =
throws=20
PleaseCloseSocketException {<BR>for(int i=3D0;i&lt; users.length;i++) =
{<BR>if=20
((users[i].logged)&amp;&amp;(users[i].ID!=3DID))<BR>users[i].commandCente=
r("server_ask_refresh",<BR>new=20
DataBag("none","none",0,0,0,0,0));<BR>}<BR>}// method "refreshToAll"=20
ended<BR><BR><BR>public void commandCenter(String command,<BR>DataBag =
data)=20
throws<BR>PleaseCloseSocketException {<BR>if=20
(command.equals("server_ask_refresh")) server_ask_refresh();<BR>else if=20
(command.equals("refresh")) server_answer_refresh();<BR>else if=20
(command.equals("log")) server_answer_log();<BR>else if =
(command.equals("join"))=20
server_answer_join();<BR>else if (command.equals("pause"))=20
server_answer_pause();<BR>else if (command.equals("continue"))=20
server_answer_continue();<BR>else if (command.equals("new"))=20
server_answer_newRoom();<BR>else if (command.equals("quit"))=20
server_answer_quit();<BR>else if (command.equals("server_ask_text"))=20
server_ask_text(data);<BR>else if (command.equals("server_ask_draw"))=20
server_ask_draw(data);<BR><BR><BR>}// method commandCenter =
ended<BR><BR>private=20
void server_ask_draw(DataBag data) throws<BR>PleaseCloseSocketException=20
{<BR><BR>String message=3Dnull;<BR><BR>try{<BR>synchronized=20
(this){<BR>io_out.writeUTF("draw");<BR>io_out.writeInt(data.color);<BR>io=
_out.writeShort(data.x0);<BR>io_out.writeShort(data.y0);<BR>io_out.writeS=
hort(data.x1);<BR>io_out.writeShort(data.y1);<BR>}<BR>message_TextArea.ap=
pendText("\nChannel"+ID+"("+<BR>name+"):send:"+"draw=20
data");<BR><BR>}catch(IOException e){<BR>throw new=20
PleaseCloseSocketException();<BR>}<BR><BR>}// method 'server_ask_draw'=20
ended<BR><BR>private void server_ask_text(DataBag data)=20
throws<BR>PleaseCloseSocketException {<BR><BR>String=20
message=3Dnull;<BR><BR>try{<BR>synchronized=20
(this){<BR>io_out.writeUTF("text");<BR>io_out.writeUTF(data.name);<BR>io_=
out.writeUTF(data.message);<BR>}<BR>message_TextArea.appendText("\nChanne=
l"+ID+"("+<BR>name+"):send:"+"text=20
:"+data.message);<BR><BR>}catch(IOException e){<BR>throw new=20
PleaseCloseSocketException();<BR>}<BR><BR>}// method 'server_ask_text'=20
ended<BR><BR>private void server_ask_refresh() throws=20
<BR>PleaseCloseSocketException {<BR><BR>String=20
message=3Dnull;<BR><BR>try{<BR>synchronized=20
(this){<BR>io_out.writeUTF("refresh");<BR>for(int i=3D0;i&lt;=20
roomGroup.roomCount();i++) {<BR>if (roomGroup.isActive(i))=20
{<BR>io_out.writeUTF(roomGroup.getRoomName(i));<BR>String[]=20
names=3DroomGroup.getUsersName(i);<BR>if (names!=3Dnull)<BR>for(int =
j=3D0;j&lt;=20
names.length;j++)=20
{<BR>io_out.writeUTF(names[j]);<BR>}<BR>io_out.writeUTF("complete");<BR>}=
<BR>}<BR>io_out.writeUTF("ok");<BR>io_out.writeUTF(roomGroup.getRoomName(=
roomID));<BR>}<BR>message_TextArea.appendText("\nChannel"+ID+"("+<BR>name=
+"):send:"+"refresh=20
data");<BR>}catch(IOException e){<BR>throw new=20
PleaseCloseSocketException();<BR>}catch(NoSuchRoomException e){}<BR>}// =
method=20
'server_ask_refresh' ended<BR><BR>private void server_answer_refresh()=20
throws<BR>PleaseCloseSocketException {<BR><BR>String=20
message=3Dnull;<BR><BR>commandCenter("server_ask_refresh",<BR>new=20
DataBag("none","none",0,0,0,0,0));<BR><BR>}// method =
'server_answer_refresh'=20
ended<BR><BR>private void server_answer_log()=20
throws<BR>PleaseCloseSocketException {<BR><BR>String=20
message=3Dnull;<BR><BR>try{<BR>name=3Dio_in.readUTF();<BR>logged=3Dtrue;<=
BR>belongRoom=3Dfalse;<BR>message_TextArea.appendText("\nChannel"+ID+"("+=
<BR>name+"):logged");<BR><BR>}catch(IOException=20
e){<BR>throw new PleaseCloseSocketException();<BR>}<BR>}// method=20
'server_answer_log' ended<BR><BR>private void server_answer_join() =
throws=20
<BR>PleaseCloseSocketException {<BR><BR>String message=3Dnull;<BR>int=20
roomID=3D0;<BR><BR>try{<BR>if (belongRoom)=20
{<BR>try{<BR>roomGroup.quit(this.roomID,this);<BR>belongRoom=3Dfalse;<BR>=
<BR>}catch(NoSuchRoomException=20
e){}<BR>}<BR>roomID=3DroomGroup.getRoomID(io_in.readUTF());<BR>paused=3Df=
alse;<BR>try{<BR>roomGroup.join(roomID,this);<BR>belongRoom=3Dtrue;<BR>pa=
used=3Dfalse;<BR>this.roomID=3DroomID;<BR>message_TextArea.appendText("\n=
Channel"+ID+"("+<BR>name+"):join=20
room("+roomGroup.getRoomName(roomID)<BR>+")");<BR><BR>}catch(NoSuchRoomEx=
ception=20
e){}<BR><BR>}catch(IOException e){<BR>throw new=20
PleaseCloseSocketException();<BR>}<BR>}// method 'server_answer_join'=20
ended<BR><BR>private void server_answer_pause() throws=20
<BR>PleaseCloseSocketException {<BR><BR>String=20
message=3Dnull;<BR><BR>paused=3Dtrue;<BR>message_TextArea.appendText("\nC=
hannel"+ID+"("+<BR>name+"):paused");<BR>}//=20
method 'server_answer_pause' ended<BR><BR>private void =
server_answer_continue()=20
throws<BR>PleaseCloseSocketException {<BR><BR>String=20
message=3Dnull;<BR><BR>paused=3Dfalse;<BR>message_TextArea.appendText("\n=
Channel"+ID+"("+<BR>name+"):continued");<BR>}//=20
method 'server_answer_continue' ended<BR><BR>private void=20
server_answer_newRoom() throws<BR>PleaseCloseSocketException =
{<BR><BR>String=20
message=3Dnull;<BR>int roomID=3D0;<BR><BR>try{<BR>if (belongRoom)=20
{<BR>roomGroup.quit(this.roomID,this);<BR>belongRoom=3Dfalse;<BR>}<BR>mes=
sage=3Dio_in.readUTF();<BR>try{<BR>roomID=3DroomGroup.newRoom(message);<B=
R>belongRoom=3Dfalse;<BR>paused=3Dfalse;<BR>roomGroup.join(roomID,this);<=
BR>belongRoom=3Dtrue;<BR>this.roomID=3DroomID;<BR>message_TextArea.append=
Text("\nChannel"+ID+"("+<BR>name+"):new=20
room("+message+")");<BR><BR>}catch(TooManyRoomsException=20
e){<BR>}<BR>}catch(IOException e){<BR>throw new=20
PleaseCloseSocketException();<BR>}catch(NoSuchRoomException e){}<BR>}// =
method=20
'server_answer_new' ended<BR><BR>private void server_answer_quit()=20
throws<BR>PleaseCloseSocketException {<BR><BR>String=20
message=3Dnull;<BR><BR>try{<BR>try{<BR>roomGroup.quit(roomID,this);<BR>us=
ed=3Dfalse;<BR>logged=3Dfalse;<BR>belongRoom=3Dfalse;<BR>roomID=3D0;<BR>n=
ame=3Dnull;<BR>message_TextArea.appendText("\nChannel"+ID+"("+<BR>name+")=
:quited");<BR><BR>}catch(NoSuchRoomException=20
e){<BR>io_out.writeUTF("fail");<BR>}<BR><BR>}catch(IOException =
e){<BR>throw new=20
PleaseCloseSocketException();<BR>}<BR><BR>}// method =
'server_answer_quit'=20
ended<BR><BR><BR>}// class 'user' ended<BR><BR>/*<BR>A basic extension =
of the=20
java.awt.Dialog class<BR>*/<BR><BR>//class =
5:QuitDialg=A3=AC=B7=FE=CE=F1=C6=F7=CD=CB=B3=F6=B6=D4=BB=B0=BF=F2<BR>publ=
ic class=20
QuitDialog extends Dialog {<BR>void yesButton_Clicked(Event event)=20
{<BR><BR>getParent().handleEvent(new =
Event(this,<BR>Event.WINDOW_DESTROY,=20
null));<BR>}<BR><BR>void noButton_Clicked(Event event) =
{<BR>//{{CONNECTION<BR>//=20
Clicked from noButton Hide the =
Dialog<BR>hide();<BR>//}}<BR>}<BR><BR>public=20
QuitDialog(Frame parent, boolean modal) {<BR><BR>super(parent,=20
modal);<BR>//setIconImage(icon);<BR><BR>//{{INIT_CONTROLS<BR>setLayout(nu=
ll);<BR>addNotify();<BR>resize(insets().left

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -