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

📄 chatroomclient.java

📁 这是一个倒计时的小程序,把倒计时的时间已经精确到秒,界面清晰明了!
💻 JAVA
字号:
package day23;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ChatRoomClient {
	private JFrame frame;
	private JTextArea area;
	private JLabel label;
	private JTextField field;
	private JButton button;
	private Socket s;
	private String userName;
	private BufferedReader br;
	private PrintWriter pw;
	
	public ChatRoomClient(){
		frame=new JFrame("聊天室客户端v1.0");
		area=new JTextArea(15,30);
		label=new JLabel();
		field=new JTextField(30);
		button=new JButton("发送");
		createConnection();
		init();
		addEventHandler();
	}
	
	private void createConnection(){
		do {
			String hostName = JOptionPane.showInputDialog(frame, "请输入服务器地址:");
			String port = JOptionPane.showInputDialog(frame, "请输入端口号:");
			try {
				s = new Socket(hostName, Integer.parseInt(port));
				pw=new PrintWriter(s.getOutputStream());
				br=new BufferedReader(new InputStreamReader(s.getInputStream()));
			} catch (IOException e) {
				JOptionPane.showMessageDialog(frame, "连接参数不正确,请重新输入!");
			}
		} while (s==null);	
		
		userName=JOptionPane.showInputDialog(frame,"请输入用户名:");
		label.setText(userName+":");
	}
	
	
	private void init(){
		field.setFont(new Font("",Font.BOLD,20));
		area.setFont(new Font("",Font.BOLD,24));
		JScrollPane jsp=new JScrollPane(area);
		JPanel panel=new JPanel();
		panel.add(label);
		panel.add(field);
		panel.add(button);
		
		frame.add(jsp,BorderLayout.CENTER);
		frame.add(panel,BorderLayout.SOUTH);
		
	}
	
	private void addEventHandler(){
		button.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				//得到field中的内容,将其写入到pw中,userName+":"+field.getText()
				//将field清空
			}
		});
		
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent arg0) {
				//弹出对话框询问是否确定退出?
				//给服务器发送退出请求:userName+":%GOODBYE%"
				//等待200毫秒,再关闭socket,退出程序。
			}
		});
	}
	
	public void showMe(){
		frame.pack();
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		new Thread(){
			public void run(){
				//不停的从br中读数据,每读到一行就将其显示在area中。
			}
		}.start();
	}
	
	public static void main(String[] args){
		new ChatRoomClient().showMe();
	}
	

}

⌨️ 快捷键说明

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