day 5 : update QQReg & QQServer.java

import java.awt.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.awt.event.*;

public class QQReg extends JFrame implements ActionListener{
    public static void main(String[] args){
        QQReg w = new QQReg();
        w.setVisible(true);
    }

    JTextField txtUser = new JTextField();
    JPasswordField txtPass = new JPasswordField();
    JPasswordField txtPassRe = new JPasswordField();
    QQReg(){
        //设置窗体的基本信息
        this.setSize(660 , 380);
        this.setLocationRelativeTo(null);
        this.setTitle("Talking.GHOUL.Reg");
        this.setResizable(false);
        this.setIconImage(this.getToolkit().getImage("D:/lab_2/psb (11).jpg"));
        //new组件&设置组件
        JLabel labTitle = new JLabel("  SIGN UP  ");
        labTitle.setFont(new Font("", 0, 36));

        JLabel labUser = new JLabel("  Username");
        labUser.setFont(new Font("", 0, 30));
        JLabel labPass = new JLabel("  Password");
        labPass.setFont(new Font("", 0, 30));
        JLabel labPassRe = new JLabel("  Confirm Password");
        labPassRe.setFont(new Font("", 0, 30));

        //------update-----------------------
        //JComboBox cmbUsername = new JComboBox();
        //cmbUsername.setFont(new Font("", 0, 30));
        //cmbUsername.addItem("かねき けん");
        //cmbUsername.addItem("Kaneki Ken");
        //cmbUsername.addItem("金木 研");
        txtUser.setFont(new Font("", 0, 30));

        txtPass.setFont(new Font("", 0, 25));
        txtPassRe.setFont(new Font("", 0, 25));

        JButton btnReg = new JButton(" CONFIRM ");
        btnReg.setFont(new Font("", 0, 30));
        //注册事件监听
        btnReg.addActionListener(this);

        //布置主面板
        JPanel panUser = new JPanel();
        panUser.setLayout(new GridLayout(3 , 3));

        panUser.add(labUser);
        panUser.add(txtUser);
        panUser.add(labPass);
        panUser.add(txtPass);
        panUser.add(labPassRe);
        panUser.add(txtPassRe);
        //布置按钮面板
        JPanel panButton = new JPanel();
        panButton.setLayout(new FlowLayout());

        panButton.add(btnReg);
        //布置窗体
        this.setLayout(new BorderLayout());

        this.add(labTitle , BorderLayout.NORTH);
        this.add(panUser , BorderLayout.CENTER);
        this.add(panButton , BorderLayout.SOUTH);
    }

    @Override
    public void actionPerformed(ActionEvent arg0){
        //System.out.println(arg0);
        if(arg0.getActionCommand().equals(" CONFIRM ")){
            try{
                String user = txtUser.getText();
                String pass = txtPass.getText();
                Socket s = new Socket("127.0.0.1" , 8000);

                OutputStream os = s.getOutputStream();
                OutputStreamWriter osw = new OutputStreamWriter(os);
                PrintWriter pw = new PrintWriter(osw , true);

                pw.println(user+"%"+ pass);
            }catch(Exception e){}
        }
    }
}
import java.io.*;
import java.net.*;

public class QQServer{
    public static void main(String[] args){
        try{
            //监听8000端口
            ServerSocket ss = new ServerSocket(8000);

            System.out.println("等待客户端的消息...");
            Socket s = ss.accept();

            //接受用户名和密码
            InputStream is = s.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);

            String uandp = br.readLine();

            //检验点
            System.out.println(uandp);
        }catch(Exception e){}
    }
}
时间: 2024-10-15 10:43:17

day 5 : update QQReg & QQServer.java的相关文章

Elasticsearch Java API简要总汇

3.1 集群的连接 3.1.1 作为Elasticsearch节点 [html] view plain copy 代码: import static org.elasticsearch.node.NodeBuilder.nodeBuilder; import org.elasticsearch.client.Client; import org.elasticsearch.node.Node; Node node = nodeBuilder().clusterName("escluster2&q

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,On SetTitl

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,OnSetTitleMatchMode,2 ; 激活窗口并单击按钮IfWinExistActiveControlClick

Java位运算在程序设计中的使用:位掩码(BitMask)

在Java中,位运算符有很多,例如与(&).非(~).或(|).异或(^).移位(<<和>>)等.这些运算符在日常编码中很少会用到. 在下面的一个例子中,会用到位掩码(BitMask),其中包含大量的位运算.不只是在Java中,其他编写语言中也是可以使用的. 例如,在一个系统中,用户一般有查询(Select).新增(Insert).修改(Update).删除(Selete)四种权限,四种权限有多种组合方式,也就是有16中不同的权限状态(2的4次方). 一般情况下会想到用四个

(2)Linux Java环境变量安装

install default JRE/JDK Installing Java with apt-get is easy. First, update the package index: sudo apt-get update check if Java is not already installed: java -version If it returns "The program java can be found in the following packages", Jav

【转】 Java 多线程之一

转自   Java 多线程 并发编程 一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线程:表示程序的执行流程,是CPU调度执行的基本单位:线程有自己的程序计数器.寄存器.堆栈和帧.同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源. 2.Java标准库提供了进程和线程相关

给Eclipse添加java反编译插件

打开参考网址:http://jd.benow.ca/ 这里我使用的是JD-Eclipse: 在download标签中有需要下载的zip包和安装说明: 安装说明如下: 下载其相应的zip包,解压后会得到以下目录: 然后根据安装说明步骤执行,这里需要说明的是第5步: Name项说明中推荐的是填写JD-Eclipse Update Site,其实可以随意填写 Location项填写的信息在zip解压包中的site.xml中: 该文件打开后如下: <?xml version="1.0"

Java 多线程 并发编程 (转)

一.多线程 1.操作系统有两个容易混淆的概念,进程和线程. 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线程:表示程序的执行流程,是CPU调度执行的基本单位:线程有自己的程序计数器.寄存器.堆栈和帧.同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源. 2.Java标准库提供了进程和线程相关的API,进程主要包括表示进程的jav

Java反射应用案例

场景:在购物网站中,有一级分类实体.二级分类实体.商品实体,对三个实体映射到数据库中的操作有:删除一条记            录.保存一条记录.根据id查找一条记录.修改记录等方法.如果我们不使用反射,按照一般的写法,那么我们           对应三个实体的DAO都要实现增删改查的操作.如果使用反射机制我们只需要定义一个基类泛型DAO,让其实现          所有的操作,然后使其他三个DAO分别继承该BaseDAO,然后通过反射去识别在运行过程具体实体类型,实现操          作

java版的QQ小程序

转载自:http://blog.csdn.net/lihongxun945/article/details/6114290 这是一个简单的java版的QQ小程序. 包括一个简单的服务器和一个简单的客户端. 运行时,先运行服务器,然后在运行客户端,就可以进行聊天了. 默认的配置是localhost,端口4545,更改ip就可以在两天电脑上进行聊天了. 目前不支持内网和外网之间的访问,也不支持多人聊天. 因为这只是一个简单的例子,感兴趣的同学可以通过改进,实现多人聊天和内外网之间的访问. 效果图: