第十二周

一:实验代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Adapt extends JFrame {
    public Adapt() {
        Container a = getContentPane();      //定义一个容器
        JLabel name = new JLabel("用户名:");   
        JLabel mima = new JLabel("密码:");
        JButton in = new JButton("登录");
        JButton out = new JButton("重置");
        JPasswordField jpf1 = new JPasswordField();
        JTextField jtf1= new JTextField();
        in.addActionListener(new ActionListener() {         //登录采用匿名内部类
            public void actionPerformed(ActionEvent argo) {
                if (jtf1.getText().equals("小明") &&new String(jpf1.getPassword()).equals("123456")){
                    JOptionPane.showMessageDialog(null, "登陆成功!");//弹出框判断是否成功
                } else if (jtf1.getText().length() == 0 || new String (jpf1.getPassword()).length() == 0){
                    JOptionPane.showMessageDialog(null, "不能为空!");
                } else {
                    JOptionPane.showMessageDialog(null, "登录失败");            
                }
            }
        });     
        out.addActionListener(new ActionListener() {//重置
            public void actionPerformed(ActionEvent arg0) {
                jtf1.setText("");//清零
                jpf1.setText("");
            }
        }); 
        a.setLayout(null);//使用绝对定位
        jtf1.setBounds(60, 20, 210, 30);
        name.setBounds(10, 20, 90, 30);
        mima.setBounds(25, 60, 90, 30);
        jpf1.setBounds(60, 60, 210, 30);
        in.setBounds(60, 100, 70, 50);
        out.setBounds(200, 100, 70, 50);
        a.add(name);
        a.add(jtf1);
        a.add(mima);
        a.add(jpf1);
        a.add(in);
        a.add(out); 
        setSize(500, 320);
        setVisible(true);
    }
    public static void main(String[] args) {
        new Adapt();
    }
}

二:实验截图
第十二周_第1张图片
第十二周_第2张图片
第十二周_第3张图片

总结:
这周主要学习了事件处理,以及监听器的使用方法,这道题我主要用了匿名内部类,WindowListener是专门处理窗体事件的监听接口,一个窗体的所有变化,都可以使用这个接口进行监听。
消息对话框(JOptionPane):这是一种临时对话窗体,一般用于 消息的动态显示与流程控制。
单行文本输入框:JTextField
密码文本输入框:JPasswordField
布局管理器:
1、FlowLayout 流式布局
顾名思义,组件像水流一样,从第一行开始,从左向右依次排列,碰到边界时转到下一行继续。
2、BorderLayout 边界布局
将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置一个组件。
3、GridLayout 网格布局
将容器划分为指定行数、列数的网格,每个格子的尺寸都相同,一个格子中放置一个组件,适合组件大小差不多的,比如放置计算器的按钮。
从左往右、从上往下依次放置。
4、GridBagLayout 网格包布局
在GridLayout基础上发展而来,比GridLayout更加灵活。功能最强大,但也是最复杂的.
5、CardLayout 卡片布局
将容器中的所有组件(通常是容器)当做一叠卡片,只显示一张卡片(一个组件
第十二周_第4张图片

你可能感兴趣的:(第十二周)