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

📄 client_presentation_logic_layer.java

📁 局域网内聊天程序
💻 JAVA
字号:
import java.awt.Button;
import java.awt.Rectangle;
import java.awt.TextArea;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import java.awt.event.*;
import java.io.IOException;


public class Client_presentation_logic_layer extends JFrame{
	JLabel jLabel_ip = new JLabel();
    JLabel jLabel_port = new JLabel();
    JLabel jLabel_name = new JLabel();
    JTextField jTextField_ip = new JTextField();
    JTextField jTextField_port = new JTextField();
    JTextField jTextField_name = new JTextField();
    TextArea textArea1 = new TextArea();
	TextArea textArea2 = new TextArea();
	Button button_send = new Button();
	Button button_connect = new Button();
    Button button_disconnect = new Button();
    static Client_presentation_logic_layer layer3;
    static Client_application_logic_layer layer2;
    
    
    Client_presentation_logic_layer(){
    	try{
    	 Init();
	     this.setBounds(100,200,410,370);
	     this.validate();
	     this.setVisible(true);
         this.setTitle("Client");
    	}
    	catch(Exception ex) {
    		ex.printStackTrace();
    	}
    }
    void Init() throws Exception
	  { 
		jLabel_ip.setFont(new java.awt.Font("宋体", 0, 14));
		jLabel_ip.setText("IP:");
		jLabel_ip.setBounds(new Rectangle(18, 8, 40, 30));
		jTextField_ip.setBounds(new Rectangle(60, 8, 120, 30));
		jTextField_ip.setText("192.168.1.102");
		
		jLabel_port.setFont(new java.awt.Font("宋体", 0, 14));
		jLabel_port.setText("Port:");
		jLabel_port.setBounds(new Rectangle(18, 50, 50, 30));
		jTextField_port.setBounds(new Rectangle(60, 50, 120, 30));
		jTextField_port.setText("2009");
		
		
		jLabel_name.setFont(new java.awt.Font("宋体", 0, 14));
		jLabel_name.setText("Name:");
		jLabel_name.setBounds(new Rectangle(18, 90, 50, 30));
		jTextField_name.setBounds(new Rectangle(60, 90, 120, 30));
		jTextField_name.setText("赵力");
		
		textArea1.setColumns(10);
	    textArea1.setFont(new java.awt.Font("宋体", 0, 14));
	    textArea1.setText("");
	    textArea1.setBounds(new Rectangle(200, 152, 384, 139));
	    this.getContentPane().setLayout(null);
	    textArea2.setBounds(new Rectangle(200, 5, 384, 139));
	    textArea2.setColumns(0);
	    textArea2.setEditable(false);
	    textArea2.setFont(new java.awt.Font("宋体", 0, 14));
	    textArea2.setRows(0);
	    textArea2.setSelectionEnd(0);
	    textArea2.setSelectionStart(10);
	    textArea2.setText("");
	    
	    button_connect.setLabel("CONNECT");
		button_connect.setBounds(new Rectangle(8, 299, 81, 25));
		button_connect.addActionListener(new Chat_button_connect_listener());
		 
		button_disconnect.setLabel("DISCONNECT");
		button_disconnect.setBounds(new Rectangle(108, 299, 81, 25));
		button_disconnect.addActionListener(new Chat_button_disconnect_listener());
		 
		button_send.setLabel("send");
		button_send.setBounds(new Rectangle(300, 300, 81, 25));
		button_send.addActionListener(new Chat_button_send_listener());
	   
	   
	    this.getContentPane().add(jLabel_ip, null);
	    this.getContentPane().add(jLabel_port, null);
	    this.getContentPane().add(jLabel_name, null);
	    this.getContentPane().add(jTextField_ip, null);
	    this.getContentPane().add(jTextField_port, null);
	    this.getContentPane().add(jTextField_name, null);    
	    this.getContentPane().add(textArea1, null);
	    this.getContentPane().add(textArea2, null);
	    

		
		this.getContentPane().add(button_connect);
		this.getContentPane().add(button_disconnect);
		this.getContentPane().add(button_send, null);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setLocale(java.util.Locale.getDefault());
		this.setResizable(false);
		 
		addWindowListener(new WindowAdapter() {
	        public void windowClosing(WindowEvent e) {
	        	System.exit(0);
	        }
		 });
	  }
        

    
    
    public static void main(String[] args)
    {
    	try{
    		layer3 = new Client_presentation_logic_layer();
    		layer2 = new Client_application_logic_layer(layer3);
         }
    	 catch(Exception e)
         {
                 System.out.println(e.toString());
         }
    }


class Chat_button_send_listener implements ActionListener{
	 public void actionPerformed(ActionEvent e){
		if(textArea1.getText().equals(""))
         {
           String ts="警告:消息不允许为空!^_^";
           JOptionPane.showMessageDialog(null,ts,"警告",JOptionPane.WARNING_MESSAGE);
           //showMessage(ts);
         }
		else{
			try{
				layer3.textArea2.append("我>"+layer3.textArea1.getText()+"\n");
				layer2.skt.sendMessage(layer3.jTextField_name.getText()+":"+layer3.textArea1.getText());
				layer3.textArea1.setText("");
			}
			catch (IOException er) {
				 String JG="系统信息:用户"+layer3.jTextField_ip.getText()+"不在线!"+'\n'+"用户:"+layer3.jTextField_name.getText()+"消息"+layer3.textArea1.getText()+ "发送不成功!";
		         JOptionPane.showMessageDialog(null,JG,"提示",JOptionPane.WARNING_MESSAGE);
				layer3.textArea2.append(er.toString());;
			}
		}
	}
	
}

class Chat_button_connect_listener implements ActionListener{
	 public void actionPerformed(ActionEvent e){
		layer2.start();
	}
 }
 
 class Chat_button_disconnect_listener implements ActionListener{
	 public void actionPerformed(ActionEvent e){

		    try{
		    	 layer2.skt.sendMessage("disconnect");
		     }
		     catch (IOException er) {
		    	 layer3.textArea2.append(er.toString());;
			 }
		    layer2.skt.close();
	 }
 }
}

⌨️ 快捷键说明

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