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

📄 clientframe.java

📁 一个java聊天室程序 包括服务器端和用户端
💻 JAVA
字号:
package Day25;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ClientFrame extends JFrame {
//************************************主窗口元件建立	
	  JTextArea text = new JTextArea();//写文件区域
	  JScrollPane sp = new JScrollPane(text);
	  
	  JTextField text2 = new JTextField(35);
	  JButton button = new JButton("发送");
	  JPanel jp= new JPanel();
	  
	  JMenuBar menuBar = new JMenuBar();//菜单栏
	  JMenu fileMenu = new JMenu("聊天室");//菜单
	  JMenuItem loginItem = new JMenuItem("登录");
	  JMenuItem exitItem = new JMenuItem("退出");	 
	 
	  JMenu helpMenu = new JMenu("帮助");
	  JMenuItem aboutItem = new JMenuItem("关于");
	  
	  ClientManager client = new ClientManager(this);
	  ClientListener Cis = new ClientListener(this);
//*****************************构造器,建立窗口	  
 public ClientFrame(){
	  this.setTitle("网络聊天--Client");
	  this.setSize(480,320);
	  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
	  
	  loginItem.addActionListener(Cis);
	  exitItem.addActionListener(Cis);	
	  aboutItem.addActionListener(Cis);
	  button.addActionListener(Cis);
	 
	  
	  fileMenu.add(loginItem);	
	  fileMenu.add(exitItem);

	  helpMenu.add(aboutItem);
	  
	  menuBar.add(fileMenu);
	  menuBar.add(helpMenu);
	  
	  jp.add(text2);
	  jp.add(button);
	  
	  this.getContentPane().add(menuBar,BorderLayout.NORTH); 	 	  
	  this.getContentPane().add(sp);
	  this.getContentPane().add(jp,BorderLayout.SOUTH);
	  
	  this.setVisible(true);
 }

	

	public static void main(String[] args) {
		new ClientFrame();	
	}


//*********************************登录窗口
	public void loginItemClicked() {		
		final JDialog jl = new JDialog(this,true);		
		jl.setSize(320,140);
		
		Panel panel1 = new Panel();
		Panel panel2 = new Panel();
		Panel panel3 = new Panel();
		
		JLabel label1 = new JLabel("输入名字");
		final JTextField text1 = new JTextField(12);
		JLabel label0 = new JLabel("        ");
		
		JLabel label2 = new JLabel("服务器IP:");
		final JTextField text2 = new JTextField(12);
		JLabel label3 = new JLabel("端口:");
		final JTextField text3 = new JTextField(6);
		

		JButton button = new JButton("确定");
		JButton button1 = new JButton("重设");
     //****************增加一个登录窗口匿名监听器		
	
	    ActionListener cbs = new ActionListener() {//确定按钮button1监听
	    	
			public void actionPerformed(ActionEvent e) {
				JButton button = (JButton) e.getSource();				
				client.clientbox.set(text1.getText(),text2.getText(),text3.getText());//发送用户信息
			    try {
					client.clientbox.running();
				} catch (Exception e1) {					
				}
				jl.dispose();
			}				
	    };
	    ActionListener cbs2 = new ActionListener() {//取消按钮button2监听
		  public void actionPerformed(ActionEvent e) {
			JButton button = (JButton) e.getSource();						
			text1.setText(null);
			text2.setText(null);
			text3.setText(null);				
		 }				
        };
		button.addActionListener(cbs);
		button1.addActionListener(cbs2);
		
		panel1.add(label1);
		panel1.add(text1);
		panel1.add(label0);
		
		panel2.add(label2);
		panel2.add(text2);
		panel2.add(label3);
		panel2.add(text3);
		
		panel3.add(button);
		panel3.add(button1);
		
		jl.setLayout(new GridLayout(3,1));
		jl.add(panel1);
		jl.add(panel2);
		jl.add(panel3);
		
		jl.setVisible(true);
		
	}
//*********************************************退出程序	
	public void exitItemClicked() {
		client.exit();
		System.exit(0);
	}
//********************************************帮助窗口	
	public void helpItemClicked() {
		JDialog about = new JDialog(this,true);//flase打开时父窗口能活动,true不能活动
		about.setSize(400,200);
		JLabel label = new JLabel("PiPi V1.0版,继续使用请付2000块钱!");
		about.getContentPane().add(label);
		about.setVisible(true);
		
	}
//**************************************发送按钮	
	public void buttonClicket() throws Exception {
		client.send(text2.getText());
		this.text2.setText(null);
		
	}

}

//***********************************************主窗口监听器
class ClientListener implements ActionListener{
      ClientFrame frame = null;
	
	public  ClientListener(ClientFrame frame){
		this.frame = frame;		
	}

	public void actionPerformed(ActionEvent e) {

	    if(e.getSource()== frame.loginItem){
			frame.loginItemClicked();
		}
		else if(e.getSource()==frame.exitItem){
			frame.exitItemClicked();		}

		else if(e.getSource()==frame.aboutItem){
			frame.helpItemClicked();
		}
		else if(e.getSource()==frame.button){
			try {
				frame.buttonClicket();
			} catch (Exception e1) {			
				e1.printStackTrace();
			}
		}
	}	
}


⌨️ 快捷键说明

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