第十二周课程总结

用户登录界面
实验代码

package test1;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class 图像界面 {
public static void main(String[] args) {
    JFrame f=new JFrame("用户登录系统");
    f.setLayout(null);
    JLabel info=new JLabel();
    JButton submit=new JButton("登录");
    JButton reset=new JButton("重置");
    JLabel namelab=new JLabel("用户名");
    JLabel passlab=new JLabel("密码");
    JTextField nametext=new JTextField();
    JPasswordField passtext=new JPasswordField();
    
    submit.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent arg0) {
            if(arg0.getSource()==submit) {
                String n=nametext.getText();
                String p=new String(passtext.getPassword());
                if(n.equals("xutao")&&p.equals("123456")) {
                    info.setText("登录成功");
                }
                else if(n.equals("")) {
                    info.setText("请输入用户名");
                }
                else if(p.equals("")) {
                    info.setText("请输入密码");
                }
                else
                    info.setText("用户名或密码错误");
            }
        }
    });
    reset.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            if(arg0.getSource()==reset) {
                nametext.setText("");
                passtext.setText("");
                info.setText("");
            }
        }
    });
    
    namelab.setBounds(20,20, 40, 40);
    passlab.setBounds(20, 80, 40, 40);
    nametext.setBounds(80, 20, 240, 40);
    passtext.setBounds(80, 80, 240, 40);
    submit.setBounds(120, 140, 60, 40);
    reset.setBounds(220, 140,60, 40);
    info.setBounds(10, 200, 100, 40);
    
    f.add(namelab);
    f.add(passlab);
    f.add(nametext);    
    f.add(passtext);
    f.add(submit);
    f.add(reset);
    f.add(info);
    f.setSize(400,300);
    f.setLocation(450,234);
    f.setVisible(true); 
}
}

实验结果

学习总结:本周主要学习了其他容器

1.JPanel
可以将多个组件加入到JPanel中以实现复杂的排列,一个界面只可以有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout,BorderLayout,GridLayout等各种布局管理器,这样可以组合使用,达到较为复杂的布局效果。

2.JSplitPane
JSplitPane用来将窗口分割成两个部分。JSplitPane提供两个常数让你设置到底是要垂直分割还是水平分割。这两个常数分别是:HORIZONTAL_SPIT,VERTICAL_SPLIT

3.JTabbedPane
JTabbedPane创建的选项卡可以通过单击标题或者图标在选项卡之间进行切换。

4.JScrollPane
主要功能是为显示的内容加入水平滚动条。

5.文本组件:
单行文本输入框:JTextField
密码文本输入框:JPasswordField
多文本输入组件:JTextArea

6.窗体事件(WindowListener)常用接口方法voidwindowActivated/windowDeactivated(WindowEvent e) //将窗口变为活动/不活动窗口时触发voidwindowClosed/Closing/Iconified(WindoowEvent e)//当窗口被关闭时/正在关闭/最小化时触发3.监听适配器Adapter:用户继承该类后就可以根据自己的需要来覆写方法,就不需要覆写接口里的所有抽象方法了。4.动作事件及监听处理ActionListener:处理按钮的动作事件,让按钮变得更加有意义。voidactionPerFormed(ActionEvent e)//发生操作时调用

7.监听适配器:
监听接口中有很多抽象方法,在实现接口的时候,需要重写所有的方法,但经常只会用到其中的一个或两个,这无疑是一种多余。于是出于简化的目的,每个还有多个方法的的监听器接口都配有一个适配器类,这个类实现了接口中的所有方法,但是每个方法没有做任何事情。通过继承适配器类,重写其中的需要使用的方法,不必重写全部的方法,简单方便。

posted @ 2019-11-16 21:14  烟亦  阅读(134)  评论(2)    收藏  举报