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

📄 face.java

📁 用JAVA实现多线程网络服务器与客户端通讯的简单程序
💻 JAVA
字号:
package Pro123;
//软件界面,进行按键监听调用。
//face.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*; 
import java.util.*;
import sun.jdbc.odbc.JdbcOdbcDriver;
import org.postgresql.Driver;
public class Face extends JFrame {
    /** *//**
     *
    */
    private static final long serialVersionUID = 1L;
    JButton clientBtn, serverBtn;
    JTextArea ta;
    JTextField tfaddress, tfport, tftype;
    int port;
   Client client;
    Server server;
    boolean iamserver;
  static  Face frm;
   String userID="liqitong";
   String user1="liqitong1";
   static int a=0;
   JList listone;
   Vector listName;
    public Face() {
    	 listName=new Vector();
    	try{
    		String jdbcDriverName="org.postgresql.Driver";
    	    Driver driver = (Driver) Class.forName(jdbcDriverName).newInstance();
    	    DriverManager.registerDriver(driver);
    	    Connection dbcon = DriverManager.getConnection("jdbc:postgresql:postgres","postgres","123");
    	    PreparedStatement st = dbcon.prepareStatement("select yonghu_id2 from friend where yonghu_id1=?;");
    		st.setString(1,"liqitong1");
    		ResultSet rt = st.executeQuery();
    	  // listName.add(rt.getString(1));
    		//listName.add("liqitong2");
    		while (rt.next()){
    			listName.add(rt.getString(1));
    			
    		}
                  rt.close();
                  st.close();
                  dbcon.close();
    	}
    	catch (Exception e ){
    		e.printStackTrace();
    	}
    	
    	//listName.add("liqitong2");
        clientBtn = new JButton("客户端");
        serverBtn = new JButton("服务器");
       ta = new JTextArea("", 10, 30);
       tfaddress = new JTextField("192.168.0.59", 15);
        tfport = new JTextField("2000");
        tftype = new JTextField(" ",30);
        listone=new JList(listName);
        tfaddress.setEditable(true);
        tfport.setEditable(true);
        tftype.setEditable(true);
        listone.setVisibleRowCount(2);
        listone.setSelectionMode(
                ListSelectionModel.SINGLE_SELECTION);
        listone.setFixedCellHeight(15);
        listone.setFixedCellWidth(100);
        //listone.setListData(listName);
       tftype.addKeyListener(new TFListener());
       ta.setEditable(false);
      setLayout(new FlowLayout());
      
       add(tfaddress);
        add(tfport);
       add(clientBtn);
        add(serverBtn);
        add(ta);
        add(tftype);
        add(new JScrollPane(listone,
                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
        setSize(400, 350);
       setTitle("我的聊天室");
        this.setVisible(true);
        MouseListener mouseListener = new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if (e.getClickCount() == 2) {
                    int index = listone.getSelectedIndex();
                    //System.out.println("Double clicked on Item " + index);
                   // user1=listName[index];
            	user1=listone.getSelectedValue().toString();
                }
            }
        };
        listone.addMouseListener(mouseListener);


      clientBtn.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
                          ;
                port = Integer.parseInt(tfport.getText());
                   userID=userID+"2";
               client = new Client(tfaddress.getText(), port, frm,userID,user1);

                client.start();

                tfaddress.setEnabled(false);
                tfport.setEnabled(false);
                serverBtn.setEnabled(false);
               clientBtn.setEnabled(false);
            }
        });

        serverBtn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

               port = Integer.parseInt(tfport.getText());

                server = new Server(port, frm);

               server.start();

                iamserver = true;
               tfaddress.setText("成为服务器");

                tfaddress.setEnabled(false);
               tfport.setEnabled(false);
                    serverBtn.setEnabled(false);

             clientBtn.setEnabled(false);
           }
       });

        addWindowListener(new WindowAdapter() {
           public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
       });

    }

    public static void main(String args[]) {
        frm = new Face();
    }

    private class TFListener implements KeyListener {
        public void keyPressed(KeyEvent e) {

            if (e.getKeyCode() == KeyEvent.VK_ENTER) {

                ta.append(">" + tftype.getText() + "\n");

                if (iamserver)
                    server.dataout(tftype.getText());
                else
                   client.dataout(tftype.getText());

                tftype.setText("");
            }
       }

        public void keyTyped(KeyEvent e) {
        }

        public void keyReleased(KeyEvent e) {
        }
    }

}

⌨️ 快捷键说明

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