📄 privatechat.java
字号:
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
/*****************Chat Client Private Chat********************************/
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
package com.jeeva.chatclient;
import java.awt.Panel;
import java.awt.Label;
import java.awt.Window;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.TextArea;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Cursor;
import java.awt.Image;
import java.net.URL;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
public class PrivateChat extends Frame implements CommonSettings,KeyListener,ActionListener
{
PrivateChat(ChatClient Parent, String ToUserName)
{
chatclient = Parent;
UserName = ToUserName;
setTitle("Private Chat With "+UserName);
Image IconImage = Toolkit.getDefaultToolkit().getImage("images/logo.gif");
setIconImage(IconImage);
setBackground(chatclient.ColorMap[0]);
setFont(chatclient.getFont());
EmotionFlag = false;
InitializeComponents();
/****Window Closing Event *****/
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent evt) { ExitPrivateWindow(); }});
}
/******* Initialize All Components **********/
private void InitializeComponents()
{
setLayout(null);
Label LblConversation = new Label("Conversation With "+UserName);
LblConversation.setForeground(chatclient.ColorMap[5]);
LblConversation.setBounds(5, 30, 400, 20);
add(LblConversation);
Panel MessagePanel = new Panel(new BorderLayout());
messagecanvas = new MessageCanvas(chatclient);
MessageScrollView = new ScrollView(messagecanvas,true,true,TAPPANEL_CANVAS_WIDTH,TAPPANEL_CANVAS_HEIGHT,SCROLL_BAR_SIZE);
messagecanvas.scrollview = MessageScrollView;
MessagePanel.add("Center",MessageScrollView);
MessagePanel.setBounds(5, 50, 400, 200);
add(MessagePanel);
TxtMessage = new TextField();
TxtMessage.addKeyListener(this);
TxtMessage.setFont(chatclient.TextFont);
TxtMessage.setBounds(5, 260, 320, 20);
add(TxtMessage);
CmdSend = new CustomButton(chatclient,"Send");
CmdSend.addActionListener(this);
CmdSend.setBounds(335, 260, 70, 20);
add(CmdSend);
CmdClear = new CustomButton(chatclient,"Clear");
CmdClear.addActionListener(this);
CmdClear.setBounds(5, 290, 80, 20);
CmdIgnore = new CustomButton(chatclient,"Ignore User");
CmdIgnore.addActionListener(this);
CmdIgnore.setBounds(105, 290, 80, 20);
CmdClose = new CustomButton(chatclient,"Close");
CmdClose.addActionListener(this);
CmdClose.setBounds(205, 290, 80, 20);
CmdEmoticons = new CustomButton(chatclient,"Emoticons");
CmdEmoticons.addActionListener(this);
CmdEmoticons.setBounds(305, 290, 80, 20);
add(CmdClear);
add(CmdIgnore);
add(CmdClose);
add(CmdEmoticons);
EmotionPanel = new Panel(new BorderLayout());
emotioncanvas = new EmotionCanvas(chatclient,this);
EmotionScrollView = new ScrollView(emotioncanvas,true,true,EMOTION_CANVAS_WIDTH,EMOTION_CANVAS_HEIGHT,SCROLL_BAR_SIZE);
emotioncanvas.scrollview = EmotionScrollView;
/**********Add Icons into MessageObject *********/
emotioncanvas.AddIconsToMessageObject();
EmotionPanel.add("Center",EmotionScrollView);
EmotionPanel.setVisible(false);
EmotionPanel.setBounds(5,320,EMOTION_CANVAS_WIDTH,EMOTION_CANVAS_HEIGHT);
add(EmotionPanel);
setSize(PRIVATE_WINDOW_WIDTH,PRIVATE_WINDOW_HEIGHT);
setResizable(false);
show();
this.requestFocus();
}
/***********Action Listener coding **********/
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource().equals(CmdSend))
{
/******** Send Message *********/
if (!(TxtMessage.getText().trim().equals("")))
SendMessage();
}
/*****Close Button Event ********/
if(evt.getSource().equals(CmdClose))
{
ExitPrivateWindow();
}
/*********Clear Button Event ********/
if(evt.getSource().equals(CmdClear))
{
messagecanvas.ClearAll();
}
/***** Ignore Action Event ********/
if(evt.getSource().equals(CmdIgnore))
{
if(evt.getActionCommand().equals("Ignore User"))
{
chatclient.tappanel.UserCanvas.IgnoreUser(true,UserName);
messagecanvas.AddMessageToMessageObject(UserName +" has been ignored!",MESSAGE_TYPE_ADMIN);
CmdIgnore.setLabel("Allow User");
}
else
{
messagecanvas.AddMessageToMessageObject(UserName +" has been removed from ignored list!",MESSAGE_TYPE_ADMIN);
chatclient.tappanel.UserCanvas.IgnoreUser(false,UserName);
CmdIgnore.setLabel("Ignore User");
}
}
/***** Emoticons Action Event ********/
if(evt.getSource().equals(CmdEmoticons))
{
if(EmotionFlag)
{
EmotionFlag = false;
EmotionPanel.setVisible(false);
setSize(PRIVATE_WINDOW_WIDTH,PRIVATE_WINDOW_HEIGHT);
}
else
{
EmotionFlag = true;
EmotionPanel.setVisible(true);
setSize(PRIVATE_WINDOW_WIDTH,PRIVATE_WINDOW_HEIGHT+EMOTION_CANVAS_HEIGHT);
}
}
}
/********* Key Listener Event *************/
public void keyPressed(KeyEvent evt)
{
if((evt.getKeyCode() == 10) && (!(TxtMessage.getText().trim().equals(""))))
{
SendMessage();
}
}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){}
private void SendMessage()
{
messagecanvas.AddMessageToMessageObject(chatclient.UserName+": "+TxtMessage.getText(),MESSAGE_TYPE_DEFAULT);
chatclient.SentPrivateMessageToServer(TxtMessage.getText(),UserName);
TxtMessage.setText("");
TxtMessage.requestFocus();
}
/******** Function to Set the Image Name into Text Field ************/
protected void AddImageToTextField(String ImageName)
{
if(TxtMessage.getText()==null || TxtMessage.getText().equals(""))
TxtMessage.setText("~~"+ImageName+" ");
else
TxtMessage.setText(TxtMessage.getText()+" "+"~~"+ImageName+" ");
}
/*********Function to Add a Message To Messagecanvas *********/
protected void AddMessageToMessageCanvas(String Message)
{
messagecanvas.AddMessageToMessageObject(Message,MESSAGE_TYPE_DEFAULT);
}
protected void DisableAll()
{
TxtMessage.setEnabled(false);
CmdSend.setEnabled(false);
}
protected void EnableAll()
{
TxtMessage.setEnabled(true);
CmdSend.setEnabled(true);
}
/****** Exit from Private Chat */
private void ExitPrivateWindow() {
chatclient.RemovePrivateWindow(UserName);
setVisible(false);
}
/*************** Global Variable Declarations ****************/
ChatClient chatclient;
protected String UserName;
MessageCanvas messagecanvas;
ScrollView MessageScrollView;
TextField TxtMessage;
Button CmdSend,CmdClose,CmdIgnore,CmdClear,CmdEmoticons;
EmotionCanvas emotioncanvas;
ScrollView EmotionScrollView;
boolean EmotionFlag;
Panel EmotionPanel;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -