java练习三7.18

/*************************    QQ界面登陆    *************************/

源代码:

package com.yq.event;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Image;
import javax.swing.JCheckBox;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

//1.创建名为Login的类,在该类中创建一个名为InitUI的方法,图形界面就在此方法中实现
public class Login {
    public static void main(String[] args) {
        Login log = new Login();
        log.InitUI();

    }

    public void InitUI() {
        final JTextField nametext = new JTextField();
         char keyvaule[] ={' ',}; 
        /********************** 键盘事件 *************************/
        KeyListener kl = new KeyListener() {
            //完成一次完整的敲击键盘上某个键的过程(按下和松开)
            @Override
            public void keyTyped(KeyEvent arg0) {    
                // TODO Auto-generated method stub
                System.out.println("键盘敲击了..arg0 = "+arg0.getKeyChar());
                nametext.setText("111111");
                System.out.println(nametext.getText());
            }
            //松开键
            @Override
            public void keyReleased(KeyEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("键盘释放了..");
            }
            //按下键时调用。
            @Override
            public void keyPressed(KeyEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("键盘按下了..");
            }
        };
        /********************** 鼠标事件 *************************/
        MouseListener ml = new MouseListener() {
            
            //在组件上释放鼠标按钮时调用
            @Override
            public void mouseReleased(MouseEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("鼠标释放了..");
            }      
            //在组件上按下鼠标按钮时调用。
            @Override
            public void mousePressed(MouseEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("鼠标点下了..");
            }   
            //当鼠标退出组件时调用。
            @Override
            public void mouseExited(MouseEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("鼠标退出 了..");
            }        
            //当鼠标进入组件时调用
            @Override
            public void mouseEntered(MouseEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("鼠标移入 了..");
            }
            
            //在组件上单击(按下并释放)鼠标按钮时调用。 
            @Override
            public void mouseClicked(MouseEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("鼠标点击 了..");
            }
        };       
        // 1.1创建一个顶级容器,也就是空白窗口,并为此窗口设置属性(窗口名称,大小,显示位置,关闭设置)

                // 用JFrame创建一个名为frame的顶级容器,需要添加的包名为javax.swing.JFrame
                JFrame frame = new JFrame();
                // 设置窗口名称
                frame.setTitle("QQ2018");
                // 设置窗口大小
                frame.setSize(540, 427);
                // 设置窗口位于屏幕中央
                frame.setLocationRelativeTo(null);
                // 参数为3时,表示关闭窗口则程序退出

                // 1.2设置窗体上组件的布局,此处使用流式布局FlowLayout,流式布局类似于word的布局
                // 用FlowLayout创建一个名为f1的对象,需要添加的包名为java.awt.FlowLayout,其中LEFT表示左对齐,CENTER表示居中对齐,RIGHT表示右对齐
                FlowLayout f1 = new FlowLayout(FlowLayout.LEFT);
                // frame窗口设置为f1的流式左对齐
                frame.setLayout(f1);

                // 1.3在窗体上添加图片,文字

                // 在添加图片之前,先把图片从磁盘中加载到内存中来,使用ImageIcon,需要添加的包名为javax.swing.ImageIcon,括号中为图片路径,路径中要使用”/”,不能使用”\”
                ImageIcon imag1 = new ImageIcon("D:/timg.jpg");
                // JLabel可在顶级容器中添加图片文字,需要添加的包名javax.swing.JLabel,此处将上面加载的图片创建为一个JLabel对象
                JLabel pic1 = new JLabel(imag1);
                // 将创建的图片对象添加到 窗口上
                frame.add(pic1);

                // 创建一个空的JLabel,它的长度宽度为110,30,因为窗口是流式左对齐,为了将”账号”一栏添加在正中间,所以左侧由空的JLabel填充
                JLabel name1 = new JLabel();
                // 设置空JLabel长度大小,此处不能使用setSize设置大小,setSize只能设置顶级容器大小,此处用setPreferredSize,Dimension给出大小,需要添加的包名为java.awt.Dimension.
                name1.setPreferredSize(new Dimension(110, 30));
                // 将空JLabel添加入窗口
                frame.add(name1);

                // 同上,此处添加的不是空JLabel,而是内容为“账号”的JLabel
                JLabel name = new JLabel("账号:");
                frame.add(name);

                // JTextField在窗口上添加一个可输入可见文本的文本框,需要添加的包名为javax.swing.JTextField.
                //JTextField nametext = new JTextField();
                nametext.addKeyListener(kl);
                // 设置文本框大小
                nametext.setPreferredSize(new Dimension(220, 30));
                // 添加到窗口上
                frame.add(nametext);

                // 同name1
                JLabel name2 = new JLabel();
                name2.setPreferredSize(new Dimension(110, 30));
                frame.add(name2);

                // 同name1
                JLabel name3 = new JLabel();
                name3.setPreferredSize(new Dimension(110, 30));
                frame.add(name3);

                // 同name
                JLabel password = new JLabel("密码:");
                frame.add(password);

                // JPasswordField创建一个密码文本框,里面输入的文本是不可见的,其他同nametext
                JPasswordField passwordtext = new JPasswordField();
                passwordtext.setPreferredSize(new Dimension(220, 30));
                frame.add(passwordtext);

                // 同name1
                JLabel name4 = new JLabel();
                name4.setPreferredSize(new Dimension(110, 30));
                frame.add(name4);

                // 同name1
                JLabel name5 = new JLabel();
                name5.setPreferredSize(new Dimension(150, 30));
                frame.add(name5);
                JCheckBox cb = new JCheckBox("记住密码");
                    frame.add(cb);
                    JLabel name6 = new JLabel();
                    name6.setPreferredSize(new Dimension(50, 30));
                    frame.add(name6);
                    JLabel name7 = new JLabel();
                    name6.setPreferredSize(new Dimension(60, 30));
                    JCheckBox cb1 = new JCheckBox("自动登陆");
                    frame.add(cb1);

                //ActionListener接口
                ActionListener al = new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent arg0) {
                        // TODO Auto-generated method stub
                        System.out.println("被点了");
                    }
                }; 
                // JButton创建一个可点击的按钮,按钮上可显示文本图片
                frame.add(name7);
                name7.setPreferredSize(new Dimension(200, 30));
                frame.add(name7);
                JButton bu = new JButton("登录");
                bu.addActionListener(al);//事件注册,注册被点了这个输出事件
                bu.addMouseListener(ml);//注册鼠标事件 
                bu.setPreferredSize(new Dimension(80, 30));
                frame.add(bu);

               // 设置窗口可见,此句一定要在窗口属性设置好了之后才能添加,不然无法正常显示
                frame.setVisible(true);
                nametext.setText("111111");
                System.out.println(nametext.getText());
            }

}

实验结果图:

猜你喜欢

转载自blog.csdn.net/weixin_42676710/article/details/81103676