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

📄 client.java

📁 聊天室
💻 JAVA
字号:
package com.briup.ChatServerClient;import java.io.*;import java.net.*;import java.util.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Client {		JFrame loginFrame;	JTextArea incoming;	JTextField outgoing;	JTextField nameText;	BufferedReader reader;	PrintWriter writer;	Socket sock;	String nickname;	JFrame frame;	JScrollPane qScroller;				public static void main(String[] args) {		Client client = new Client();		client.go();	}			public void go() {				JFrame frame = new JFrame("Francis Yan's Chat Client");		JPanel mainPanel = new JPanel();		incoming = new JTextArea(15,26);		incoming.setLineWrap(true);		incoming.setWrapStyleWord(true);		incoming.setEditable(false);								qScroller = new JScrollPane(incoming);		qScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);				qScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);		qScroller.setAutoscrolls(true);		outgoing = new JTextField(30);		JButton sendButton = new JButton("Send");		JButton clrButton = new JButton("Clear");		clrButton.addActionListener(new ClrButtonListener());		sendButton.addActionListener(new SendButtonListener());		nameText = new JTextField(8);		JLabel nameLabel = new JLabel("Nickname:");		outgoing.addKeyListener(new EnterListener());				mainPanel.add(qScroller);		mainPanel.add(outgoing);		mainPanel.add(nameLabel);		mainPanel.add(nameText);		mainPanel.add(sendButton);		mainPanel.add(clrButton);		frame.getContentPane().add(BorderLayout.CENTER,mainPanel);		JMenuBar menuBar = new JMenuBar();		JMenu fileMenu = new JMenu("Menu");		JMenuItem saveMenuItem = new JMenuItem("Save Text");		JMenuItem exitMenuItem = new JMenuItem("Exit");		saveMenuItem.addActionListener(new SaveListener());		exitMenuItem.addActionListener(new ExitListener());		fileMenu.add(saveMenuItem);		fileMenu.add(exitMenuItem);		menuBar.add(fileMenu);		frame.setJMenuBar(menuBar);		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		qScroller.setWheelScrollingEnabled(true);		frame.setSize(400,340);				frame.setResizable(false);		frame.setVisible(true);				setUpNetworking();				Thread readerThread = new Thread(new IncomingReader());		readerThread.start();							}			private void setUpNetworking() {				try {			sock = new Socket("192.168.1.1",5000);			InputStreamReader streamReader = new InputStreamReader(sock.getInputStream());			reader = new BufferedReader(streamReader);			writer = new PrintWriter(sock.getOutputStream());			System.out.println("networking established");		}		catch(IOException ex) {			ex.printStackTrace();		}	}					public class SendButtonListener implements ActionListener {		public void actionPerformed(ActionEvent ev) {			try {					if(nameText.getText().equals("")) incoming.append("Please input your name\n");					else{					if(outgoing.getText().equals("")) incoming.append("Couldn't send empty message\n");					else{writer.println(nameText.getText()+": "+outgoing.getText());					writer.flush();}}												}			catch(Exception ex) {				ex.printStackTrace();			}						outgoing.setText("");			outgoing.requestFocus();			//System.out.println(incoming.getText().length());		}	}		public class ClrButtonListener implements ActionListener {		public void actionPerformed(ActionEvent ev) {						incoming.setText("");					}	}		public class EnterListener extends KeyAdapter {		public void keyPressed(KeyEvent e){			if(e.getKeyCode()==10){				//try{Thread.sleep(1000);}catch(Exception ex){ex.printStackTrace();}				try {					if(nameText.getText().equals("")) incoming.append("Please input your name\n");					else{					if(outgoing.getText().equals("")) incoming.append("Couldn't send empty message\n");					else{writer.println(nameText.getText()+": "+outgoing.getText());					writer.flush();}}				}				catch(Exception ex) {					ex.printStackTrace();				}							outgoing.setText("");				outgoing.requestFocus();			}		}	}		public class SaveListener implements ActionListener {		public void actionPerformed(ActionEvent ev) {						try {				FileWriter fileWriter = new FileWriter("Record.txt");				fileWriter.write(incoming.getText());				fileWriter.close();			}			catch(IOException ex) {				System.out.println("couldn't write the Chatting Record!!");				ex.printStackTrace();			}					}	}		public class ExitListener implements ActionListener {		public void actionPerformed(ActionEvent ev) {						System.exit(0);					}	}																public class IncomingReader implements Runnable {		public void run() {			String message;			try {								while((message=reader.readLine())!=null) {					System.out.println("read"+"  "+message);					incoming.append(message + "\n");					incoming.setCaretPosition(incoming.getText().length());									}			}			catch (Exception ex) {ex.printStackTrace();}		}	}		}																																		

⌨️ 快捷键说明

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