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

📄 chatapplet.java

📁 电子白板有两种实现模型,一种是无白板服务器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   try{
    synchronized (this){
     piped_out.writeInt(currentColor.getRGB());
     piped_out.writeInt(x0);
     piped_out.writeInt(y0);
     piped_out.writeInt(x1);
     piped_out.writeInt(y1);
    }
    x0=x1;
    y0=y1;

   }catch(IOException e1){
    message_TextArea.appendText("\n发送图形管道失败");

   }
  }
	}

	void newButton_Clicked(Event event) {
  if (logged){
		 try{
		  commandCenter("ask_new",new DataBag("none","none",0,0,0,0,0));
    message_TextArea.appendText("\n您已经创建了该交谈室");
    message_TextArea.appendText("\n现在您可以进行绘画和交谈");
    message_TextArea.appendText("\n您已经加入了该交谈室");
    belongRoom=true;
    paused=false;
    quit_Button.enable();
		  chat_TextField.enable();
		  chat_Button.enable();
		  board_Canvas.enable();
		  pause_Button.enable();
		  log_Button.disable();
    chat_TextField.setText("请在这里输入谈话句子。");

		 }catch(PleaseCloseSocketException e){
    message_TextArea.appendText("\n抱歉,无法创建交谈室");
   }
		}
 }

	void subjectTextField_KeyRelease(Event event) {

  String message=null;

		message=subject_TextField.getText();
		if ((!(message.equals("")))&&(message.charAt(0)!=' ')) {
		 new_Button.enable();

		}else {
		 log_Button.disable();
		}
	}

	void quitButton_Clicked(Event event) {

  try{
		 if (logged) {
		  commandCenter("ask_quit",new DataBag("none","none",0,0,0,0,0));
		  logged=false;
    belongRoom=false;
		  log_Button.disable();
    join_Button.disable();
		  quit_Button.disable();
		  chat_TextField.disable();
		  chat_Button.disable();
		  board_Canvas.disable();
		  pause_Button.disable();
		  new_Button.disable();
    room_Choice.disable();
    chat_TextField.setText("");
    chat_TextArea.setText("");
    userName_TextField.setText("");
    subject_TextField.setText("");
    board_Canvas.repaint();
    users_List.clear();
    addNewChoice();
		  belongRoom=false;
    socketClose();
    message_TextArea.appendText("\n您已经退出交谈室");

		 }
		}catch(PleaseCloseSocketException e){
   message_TextArea.appendText("\n抱歉,无法退出交谈室");
  }
	}

	void joinButton_Clicked(Event event) {

  int roomID=0;

		try{
		 if ((logged&&roomDataValid)&&(room_Choice.getSelectedItem()!=null)) {
		  commandCenter("ask_join",new DataBag("none","none",0,0,0,0,0));
    belongRoom=true;
    paused=false;
    message_TextArea.appendText("\n您已经进入该交谈室");
    message_TextArea.appendText("\n现在您可以进行绘画和交谈");
    quit_Button.enable();
		  chat_TextField.enable();
		  chat_Button.enable();
		  board_Canvas.enable();
		  pause_Button.enable();
		  log_Button.disable();
    chat_TextField.setText("请在这里输入谈话句子。");

   }
		}catch(PleaseCloseSocketException e){
		  message_TextArea.appendText("\n您不能进入该交谈室");
  }
 }

	void pauseButton_Clicked(Event event) {


  if (logged&&belongRoom) {
		 if (!paused) {
		  try{
		   commandCenter("ask_pause",new DataBag("none","none",0,0,0,0,0));
		   pause_Button.setLabel("继续交谈");
     message_TextArea.appendText("\n已经暂停交谈");
     paused=true;
     }catch(PleaseCloseSocketException e){
       message_TextArea.appendText("\n无法暂停交谈");
     }
		 }else {
		  try{
		   commandCenter("ask_continue",new DataBag("none","none",0,0,0,0,0));
		   pause_Button.setLabel("暂停交谈");
     message_TextArea.appendText("\n继续交谈");
     paused=false;
    }catch(PleaseCloseSocketException e){
     message_TextArea.appendText("\n无法继续交谈");
    }
		 }
		}

	}

	void roomChoice_Action(Event event) {

		refreshUserList();
	}

 void userNameTextField_KeyRelease(Event event) {

  String message=null;
		message=userName_TextField.getText();
		if ((message!=null)&&(!(message.equals("")))
    &&(message.charAt(0)!=' ')&&(logged==false)) {
		 log_Button.enable();
		 userName=message;
		}else {
		 log_Button.disable();
		 userName=null;
		}
	}

	void logButton_Clicked(Event event) {

  PipedInputStream in=null;
  PipedOutputStream out=null;

  try{
   openSocket();
   in=new PipedInputStream();
   out=new PipedOutputStream(in);
   piped_out=new DataOutputStream(out);
   sender=new SendDrawData(in,io_out);

	  try{
	   commandCenter("ask_log",new DataBag("none","none",0,0,0,0,0));
	   logged=true;
    belongRoom=false;
    synchronized(this){
    notify();
   }
   message_TextArea.appendText("\n登录成功.");
   }catch(PleaseCloseSocketException e) {
     socketClose();
     message_TextArea.appendText("\n抱歉,无法登录");
	  }
	  try{
    commandCenter("ask_refresh",new DataBag("none","none",0,0,0,0,0));
    join_Button.enable();
	   new_Button.enable();
	   quit_Button.enable();
	   subject_TextField.enable();
    room_Choice.enable();
	   message_TextArea.appendText("\n请选择交谈室,\n并点击\"加入交谈室\"钮");
   }catch(PleaseCloseSocketException e) {
	   socketClose();
	   message_TextArea.appendText("\n抱歉,无法刷新交谈室数据");
   }
  }catch(IOException e){
    message_TextArea.appendText("\n抱歉,无法与服务器取得联系");
    socketClose();
  }
 }

	void cleanButton_Clicked(Event e){
  board_Canvas.repaint();
 }

	public void init() {
		super.init();
  port=Integer.parseInt(getParameter("port"));
  url=getCodeBase();

  logo_Image=getImage(url,imageFileName);
  MediaTracker tracker = new MediaTracker(this);
  tracker.addImage(logo_Image,0);
  try{
   tracker.waitForAll();
  }catch(Exception e){
   System.out.println(e);
  }
  logo_width=logo_Image.getWidth(this);
  logo_height=logo_Image.getHeight(this);

		//{{INIT_CONTROLS
		setLayout(null);
		addNotify();
		resize(610,375+70);
  repaint();
		setBackground(Color.lightGray);
  logo =new Logo(logo_Image,460,60);
  logo_x=(size().width-logo_width)/2;
  logo_y=(70-logo_height)/2+377;
  logo.setBackground(Color.lightGray);
  logo.reshape(logo_x,logo_y,logo_width,logo_height);
  add(logo);
		chat_Button = new java.awt.Button("发送");
		chat_Button.disable();
		chat_Button.reshape(552,340,48,24);
		add(chat_Button);
		log_Button = new java.awt.Button("登录");
		log_Button.reshape(144,5,48,24);
		add(log_Button);
		log_Button.disable();
		join_Button = new java.awt.Button("加入交谈室");
		join_Button.reshape(12,77,72,24);
		add(join_Button);
		join_Button.disable();
		new_Button = new java.awt.Button("创建交谈室");
		new_Button.reshape(12,150,72,24);
		add(new_Button);
		new_Button.disable();
		pause_Button = new java.awt.Button("暂停交谈");
		pause_Button.reshape(108,150,72,24);
		add(pause_Button);
		pause_Button.disable();
		quit_Button = new java.awt.Button("退出交谈室");
		quit_Button.reshape(108,77,72,24);
		add(quit_Button);
		quit_Button.disable();
		userName_Label = new java.awt.Label("用户名",Label.CENTER);
		userName_Label.reshape(0,5,60,24);
		userName_Label.setBackground(Color.lightGray);
  add(userName_Label);
		userName_TextField = new java.awt.TextField();
		userName_TextField.reshape(60,5,72,24);
		userName_TextField.setFont(new Font("TimesRoman", Font.PLAIN, 13));
		add(userName_TextField);
		room_Choice = new java.awt.Choice();
		add(room_Choice);
		room_Choice.disable();
		room_Choice.reshape(60,45,132,23);
		room_Choice.setFont(new Font("Dialog", Font.PLAIN, 13));
		room_Label = new java.awt.Label("交谈室",Label.CENTER);
		room_Label.reshape(0,45,60,24);
		room_Label.setBackground(Color.lightGray);
  add(room_Label);
		users_List = new java.awt.List(5,false);
		add(users_List);
		users_List.reshape(12,212,180,60);
		users_List.setFont(new Font("Dialog", Font.PLAIN, 13));
		subject_TextField = new java.awt.TextField();
		subject_TextField.reshape(80,115,112,24);
		subject_TextField.setFont(new Font("TimesRoman", Font.PLAIN, 13));
		add(subject_TextField);
		subject_TextField.disable();
		subject_Label = new java.awt.Label("新交谈室主题",Label.CENTER);
		subject_Label.reshape(0,115,72,24);
		subject_Label.setBackground(Color.lightGray);
  add(subject_Label);
		users_Label = new java.awt.Label("当前交谈室用户",Label.CENTER);
		users_Label.reshape(15,185,100,24);
		users_Label.setBackground(Color.lightGray);
  add(users_Label);
		message_TextArea = new java.awt.TextArea();
  message_TextArea.setEditable(false);
		message_TextArea.appendText("\n欢迎您进入交谈室。");
		message_TextArea.reshape(12,300,180,72);
		message_TextArea.setFont(new Font("Dialog", Font.PLAIN, 13));
		add(message_TextArea);
		message_Label = new java.awt.Label("系统信息");
		message_Label.reshape(12,276,88,28);
		message_Label.setBackground(Color.lightGray);
  add(message_Label);
		board_Canvas = new java.awt.Canvas();
		board_Canvas.reshape(216,36,324,216);
		board_Canvas.setBackground(new Color(16777215));
		add(board_Canvas);
  board_Canvas.addNotify();
		board_Canvas.disable();
		board_Label = new java.awt.Label("绘画白板");
		board_Label.reshape(216,12,100,24);
		board_Label.setBackground(Color.lightGray);
  add(board_Label);
		clean_Button = new java.awt.Button("清除白板图画");
		clean_Button.reshape(320,10,90,24);
		add(clean_Button);
		color_canvas1 = new java.awt.Canvas();
		color_canvas1.reshape(552,36,20,24);
		color_canvas1.setBackground(new Color(16777215));
		add(color_canvas1);
  currentColor_Canvas = new java.awt.Canvas();
		currentColor_Canvas.reshape(564,228,20,24);
		currentColor_Canvas.setBackground(new Color(0));
		currentColor=new Color(0);
		add(currentColor_Canvas);
		color_Canvas12 = new java.awt.Canvas();
		color_Canvas12.reshape(576,156,20,24);
		color_Canvas12.setBackground(new Color(0));
		add(color_Canvas12);
		color_Canvas11 = new java.awt.Canvas();
		color_Canvas11.reshape(552,156,20,24);
		color_Canvas11.setBackground(new Color(65535));
		add(color_Canvas11);
		color_Canvas10 = new java.awt.Canvas();
		color_Canvas10.reshape(576,132,20,24);
		color_Canvas10.setBackground(new Color(255));
		add(color_Canvas10);
		color_Canvas9 = new java.awt.Canvas();
		color_Canvas9.reshape(552,132,20,24);
		color_Canvas9.setBackground(new Color(8421504));
		add(color_Canvas9);
		color_Canvas8 = new java.awt.Canvas();
		color_Canvas8.reshape(576,108,20,24);
		color_Canvas8.setBackground(new Color(65280));
		add(color_Canvas8);
		color_Canvas7 = new java.awt.Canvas();
		color_Canvas7.reshape(552,108,20,24);
		color_Canvas7.setBackground(new Color(12632256));
		add(color_Canvas7);
		color_Canvas6 = new java.awt.Canvas();
		color_Canvas6.reshape(576,84,20,24);
		color_Canvas6.setBackground(new Color(16711935));
		add(color_Canvas6);
		color_Canvas5 = new java.awt.Canvas();
		color_Canvas5.reshape(552,84,20,24);
		color_Canvas5.setBackground(new Color(16762880));
		add(color_Canvas5);
		color_Canvas4 = new java.awt.Canvas();
		color_Canvas4.reshape(576,60,20,24);
		color_Canvas4.setBackground(new Color(16756655));
		add(color_Canvas4);
		color_canvas3 = new java.awt.Canvas();
		color_canvas3.reshape(552,60,20,24);
		color_canvas3.setBackground(new Color(16711680));
		add(color_canvas3);
		color_Canvas2 = new java.awt.Canvas();
		color_Canvas2.reshape(576,36,20,24);
		color_Canvas2.setBackground(new Color(16776960));
		add(color_Canvas2);
		currentColor_Label = new java.awt.Label("当前色",Label.CENTER);
		currentColor_Label.reshape(540,192,64,28);
	 currentColor_Label.setBackground(Color.lightGray);
  add(currentColor_Label);
		color_Label = new java.awt.Label("调色板",Label.CENTER);
		color_Label.reshape(540,12,64,24);
		color_Label.setBackground(Color.lightGray);
  add(color_Label);
		chat_TextField = new java.awt.TextField();
		chat_TextField.reshape(216,340,324,24);
		chat_TextField.setFont(new Font("Dialog", Font.PLAIN, 13));
		add(chat_TextField);
		chat_TextField.disable();
		chat_TextArea = new java.awt.TextArea();
  chat_TextArea.setEditable(false);
		chat_TextArea.reshape(216,264,372,72);
		chat_TextArea.setFont(new Font("Dialog", Font.PLAIN, 13));
		add(chat_TextArea);
  //}}
	}

	public boolean handleEvent(Event event) {
		if (event.target == log_Button && event.id == Event.ACTION_EVENT) {
			logButton_Clicked(event);
			return true;
		}
		if (event.target == userName_TextField && event.id == Event.KEY_RELEASE) {
			userNameTextField_KeyRelease(event);
			return true;
		}if (event.target == room_Choice && event.id == Event.ACTION_EVENT) {
			roomChoice_Action(event);
			return true;
		}
		if (event.target == pause_Button && event.id == Event.ACTION_EVENT) {
			pauseButton_Clicked(event);
			return true;
		}
		if (event.target == join_Button && event.id == Event.ACTION_EVENT) {
			joinButton_Clicked(event);
			return true;
		}
		if (event.target == quit_Button && event.id == Event.ACTION_EVENT) {
			quitButton_Clicked(event);
			return true;
		}
		if (event.target == subject_TextField && event.id == Event.KEY_RELEASE) {
			subjectTextField_KeyRelease(event);
			return true;
		}
		if (event.target == new_Button && event.id == Event.ACTION_EVENT) {
			newButton_Clicked(event);
			return true;
		}
		if ((event.target == board_Canvas) && (event.id == Event.MOUSE_DRAG)
     && (logged==true)&&(paused==false)) {
   event.translate(-216,-36);
			boardCanvas_MouseDrag(event);
			return true;
		}
		if (event.target == board_Canvas && event.id == Event.MOUSE_MOVE) {
   event.translate(-216,-36);

			boardCanvas_MouseMove(event);
			return true;
		}
		if (event.target == color_canvas1 && event.id == Event.MOUSE_DOWN) {
			colorCanvas1_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas2 && event.id == Event.MOUSE_DOWN) {
			colorCanvas2_MouseDown(event);
			return true;
		}
		if (event.target == color_canvas3 && event.id == Event.MOUSE_DOWN) {
			colorCanvas3_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas4 && event.id == Event.MOUSE_DOWN) {
			colorCanvas4_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas5 && event.id == Event.MOUSE_DOWN) {
			colorCanvas5_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas6 && event.id == Event.MOUSE_DOWN) {
			colorCanvas6_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas7 && event.id == Event.MOUSE_DOWN) {
			colorCanvas7_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas8 && event.id == Event.MOUSE_DOWN) {
			colorCanvas8_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas9 && event.id == Event.MOUSE_DOWN) {
			colorCanvas9_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas10 && event.id == Event.MOUSE_DOWN) {
			colorCanvas10_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas11 && event.id == Event.MOUSE_DOWN) {
			colorCanvas11_MouseDown(event);
			return true;
		}
		if (event.target == color_Canvas12 && event.id == Event.MOUSE_DOWN) {
			colorCanvas12_MouseDown(event);
			return true;
		}
		if (event.target == chat_TextField && event.id == Event.ACTION_EVENT) {
			chatTextField_EnterHit(event);
			return true;
		}
		if (event.target == chat_Button && event.id == Event.ACTION_EVENT) {
			chatButton_Clicked(event);
			return true;
		}
		if (event.target == clean_Button && event.id == Event.ACTION_EVENT) {
			cleanButton_Clicked(event);
			return true;
		}
		return super.handleEvent(event);
	}

	//{{DECLARE_CONTROLS
	java.awt.Button chat_Button;
	java.awt.Button log_Button;
	java.awt.Button join_Button;
	java.awt.Button new_Button;
	java.awt.Button pause_Button;
	java.awt.Button quit_Button;
	java.awt.Label userName_Label;
	java.awt.TextField userName_TextField;
	java.awt.Choice room_Choice;
	java.awt.Label room_Label;
	java.awt.List users_List;
	java.awt.TextField subject_TextField;
	java.awt.Label subject_Label;
	java.awt.Label users_Label;
	java.awt.TextArea message_TextArea;
	java.awt.Label message_Label;
	java.awt.Canvas board_Canvas;
	java.awt.Label board_Label;
	java.awt.Canvas color_canvas1;
	java.awt.Canvas currentColor_Canvas;
	java.awt.Canvas color_Canvas12;
	java.awt.Canvas color_Canvas11;
	java.awt.Canvas color_Canvas10;
	java.awt.Canvas color_Canvas9;
	java.awt.Canvas color_Canvas8;
	java.awt.Canvas color_Canvas7;
	java.awt.Canvas color_Canvas6;
	java.awt.Canvas color_Canvas5;
	java.awt.Canvas color_Canvas4;
	java.awt.Canvas color_canvas3;
	java.awt.Canvas color_Canvas2;
	java.awt.Label currentColor_Label;
	java.awt.Label color_Label;
	java.awt.TextField chat_TextField;
	java.awt.TextArea chat_TextArea;
 java.awt.Button clean_Button;
 Logo logo;
 Image logo_Image=null;
 final static String imageFileName="cdownlogo.jpg";
	//}}
}

// class applet ended

⌨️ 快捷键说明

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