📄 聊天室项目讲解提纲3.txt
字号:
tf.setText();
tf.getText();
ta.append();
tf.requestFocus();
DataOutputStream类的writeUTF(String s);
DataInputStream类的readUTF();
getInputStream();
getOutputStream();
JButton类的setMnemonic() setToolTipText()
引用数据类型参数的传递
//===============================================================================
public class TestServer implements ActionListener{
public TestServer(){界面的初始化}//构造方法
public void connect(){创建ServerThread线程,能随时接受客户端连接的线程}
public static void main(String[] args){创建对象,调用连接方法}
}
class ServerReadThread extends Thread//服务器读信息,写出到所有客户端
{
public ServerReadThread(TextArea t,DataInputStream d,DataOutputStream []dos){//传入三个对象类型的参数}
输入流传一个就行, 输出流要传一个数组,以便向所有客户端写出
public void run(){把读入的信息写出到服务器文本区,写出读入的信息到所有客户端}
}
class ServerThread implements Runnable{////使服务器能反复接收新的连接,并且把聊天内容打印到所有客户端的屏幕上
public ServerThread(TextArea ta){}
public void run(){开放服务器,建立连接,搭建输入输出流,可随时接受新的连接请求,用容量为100的数组,创建ServerReadThread并启动}
}
//------------------------------------------------------------------------------------
public class TestClient implements ActionListener{//实现了监听器接口
{
public TestClient(String s1,String s2){//构造方法 s1客户端用户名 s2服务器IP
界面的初始化,注册监听器,调用连接方法,调用创建线程方法}
public void connect(){建立连接,输入输出流的包装DataInputStream/DataOutputStream}
public void createReadThread(){创建线程并启动,与main线程并发}
public void actionPerformed(ActionEvent e)//在主线程中按钮或文本框事件被触发,主线程与rt并发执行
{监听器的处理方法,对文本框/区的操作,向输出流写出writeUTF()}
}
class ClientReadThread extends Thread{
public ClientReadThread(TextArea t,DataInputStream d){传参}
public void run(){读readUTF,操作文本区}
}
//-------------------------------------------------------------------------------------
public class Login implements ActionListener{
public Login(){界面的初始化,注册监听器}//构造方法
public void actionPerformed(ActionEvent e){输入合法性判断,创建客户端TestClient对象}
public static void main(String[] args){创建对象}
}
//----------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -