介绍之前呢,我们先聊聊开发模型这个概念
基本开发模型即M V C,其中M表示模型,V表示视图,C表示控制端
举个例子:
有个按钮模型,
我们在某一个时刻只能看见按钮的一种状态
1.正常显示 2.鼠标悬浮在按钮上 3.鼠标按下之后
而视图即作为用户可以看到的界面状态。
控制器即控制显示哪个状态给用户来看。
那如何将用户进行的操作实现对应的结果反应呢?
这时候就需要监听器啦!
在此引入一个新的概念:监听事件
即事件发生时,监听器可以直接响应,做出对应的反应
这些概念我们介绍了以后,再聊聊界面开发的几个要点:
1.容器:窗体
2.组件:按钮,输入框……(太多了这里就举一点例子)
3.元素规则:尺寸,颜色,布局,字体
讲了这些概念,我们不妨写个样例出来,比如要求一个登录界面
上代码来看看:
第一步来创建窗体:
public static void initUI(){
//创建窗口
JFrame jFrame = new JFrame("登录");
jFrame.setSize(300,300);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
我们介绍一下setDefaultCloseOperation后面参数的具体含义:
DO_NOTHING_ON_CLOSE
(在 WindowConstants
中定义):不执行任何操作;要求程序在已注册的WindowListener
对象的 windowClosing
方法中处理该操作。
HIDE_ON_CLOSE
(在 WindowConstants
中定义):调用任意已注册的 WindowListener
对象后自动隐藏该窗体。
DISPOSE_ON_CLOSE
(在 WindowConstants
中定义):调用任意已注册 WindowListener
的对象后自动隐藏并释放该窗体。
EXIT_ON_CLOSE
(在 JFrame
中定义):使用 System
exit
方法退出应用程序。仅在应用程序中使用。
第二步我们来设置布局,这里我们采用流式布局(概念可以自行搜索查询)
FlowLayout fl = new FlowLayout ();
jf.setLayout (fl);
第三步我们来设置组件:
//按钮
JButton btn = new JButton ("登录");
//标签
JLabel nameJla = new JLabel ("账号:");
JLabel pwdJla = new JLabel ("密码: ");
JLabel imgjla = new JLabel ();
ImageIcon img = new ImageIcon ("qq.png");
imgjla.setIcon(img);
//输入框
JTextField nameField = new JTextField ();//账号
JPasswordField pwdField = new JPasswordField();//密码
//设置输入框,图片尺寸
Dimension dim = new Dimension (410,50);
nameField.setPreferredSize (dim);
pwdField.setPreferredSize (dim);
Dimension imgjladim = new Dimension (500,400);
imgjla.setPreferredSize (imgjladim);
第四步我们来将这些组件添加到窗体上,并渲染到屏幕上:
// 加载到窗体上
jf.add (imgjla);
jf.add (nameJla);jf.add (nameField);
jf.add (pwdJla);jf.add (pwdField);
jf.add (btn);
// 组件加载之后
jf.setVisible (true);// 渲染到屏幕上
最后我们在main方法里测试:
public static void main(String[] args){
LoginUI loginUI = new LoginUI ();
loginUI.initUI ();
}
———————————————————————————————————————————
上面简单的做了一个界面,但是没有任何的功能,下面我们来添加一个验证输入账号密码正确的功能:
首先我们介绍一个接口:ActionListener,即监听器
下面我们创建一个监听器对象ButtonAction
public class ButtonAction implements ActionListener{
public javax.swing.JTextField nameJtf = null;
public javax.swing.JPasswordField pwdjtf = null;
/**
* 当被监听的组件被按下点击时 会调用这个方法
*
* @param e
*/
public void actionPerformed(ActionEvent e){
System.out.println ("按钮被点击了");
//输入框内容调用getText方法
String nameText = nameJtf.getText ();
String pwdText = pwdjtf.getText ();
System.out.println ("账号:"+nameText);
System.out.println ("密码:"+pwdText);
if(nameText.equals ("admin")&&pwdText.equals ("admin123")){
JFrame jf = new JFrame ("登录成功!!");
jf.setSize (500,300);
jf.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
jf.setVisible (true);
}else {
JFrame jf = new JFrame ("请重试!!");
jf.setSize (500,300);
jf.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
jf.setVisible (true);
}
}
}
这边我们创建好对象后,回到我们的登陆界面来注册一个监听器:
// 按钮注册监听器
ButtonAction btnAction = new ButtonAction();
// 将界面上的输入框对象 传给 监听器btnAction中两个输入框属性对象名
btnAction.nameJtf = nameField;
btnAction.pwdjtf = pwdField;
// 按钮调用添加监听器的方法
btn.addActionListener (btnAction);
那么这时候就可以实现输入账号密码校验的功能啦!
刚接触界面事件,了解的也不是很多,但是学完以后来总结还是收获不少!一起加油努力!