
Model-View-Controller 的缩写,
- Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),模型是中立的,与数据类型无关
- View 是应用的表示层(由JSP页面产生),它只是作为一种输出数据并允许用户 *** 纵的方式。
- Controller是通过应用的处理过程控制,(一般是一个servert),接受用户的输入,并调用视图和模型完成需求。本身不做任何处理,只是对模型进行调用。
– 通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。
- 容器:窗体
- 组件:按钮 输入框
- 元素规则: 尺寸 颜色 布局 字体
Swing 是一个为Java设计的GUI工具包。
Swing是JAVA基础类的一部分。
Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行
搭建流程//导入swing 和awt库
import javax.swing.*;
import java.awt.*;
//首先,定义一个类
public class LoginUI{
// 创建方法
public void initUI(){
//里面进行初始化,先设置窗体
Jframe jf = new Jframe();
// 设置窗体对象的属性
jf.setTitle ("登录界面");
jf.setSize (500,700);
jf.setDefaultCloseOperation (Jframe.EXIT_ON_CLOSE);
}
* DISPOSE_ON_CLOSE:隐藏当前窗口,并释放窗体占有的其他资源。在窗口被关闭的时候会dispose这个窗口。
* EXIT_ON_CLOSE:结束窗口所在的应用程序。在窗口被关闭的时候会退出JVM。
* 如果程序没有其他线程在运行,当所有窗口都被dispose后,JVM也会退出。
* 1.setDefaultCloseOperation(DISPOSE_ON_CLOSE);一个窗口点右上角×,只有该窗口会关闭
* 2.而setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);一个窗口点右上角×,软件的所有窗口都会关闭
开始获取元件
JButton btnLog = new JButton ("登录");
JButton btnClear = new JButton ("清空");
JLabel nameJla = new JLabel ("账号:");
JLabel pwdJla = new JLabel ("密码: ");
JLabel imgJla = new JLabel ();
ImageIcon img = new ImageIcon ("D:\······.png");
// 输入框对象
JTextField nameField = new JTextField ();
JPasswordField pwdField = new JPasswordField();
//还可以设置尺寸等 setsize()setlocation()
// 加载到窗体上
myframe.add (imgJla);
myframe.add (nameJla);myframe.add (nameField);
myframe.add (pwdJla);myframe.add (pwdField);
myframe.add (btnLog);
myframe.add (btnClear);
// 组件加载之后
myframe.setVisible (true);// 渲染到屏幕上
// 按钮注册监听器 来获取 按钮的动态
ButtonAction btnAction_log = new ButtonAction();
ButtonActionClear btnAction_cancel = new ButtonActionClear();
// 将界面上的输入框对象 传给 监听器btnAction中两个输入框属性对象名
btnAction_log.nameJtf = nameField;
btnAction_log.pwdjtf = pwdField;
// namejtf 是 ButtonAction这个类中定义的 用于接受文本状态的JTextField类型的变量 如果之后想获取 文本框中的文字 可以用.gettext()方法
btnAction_cancel.nameJtf= nameField;
btnAction_cancel.pwdjtf= pwdField;
// 按钮调用添加监听器的方法
btnLog.addActionListener (btnAction_log);
btnClear.addActionListener (btnAction_cancel);
}
//主函数调用
public static void main(String[] args){
LoginUI loginUI = new LoginUI ();
loginUI.initUI ();
}
}
// 这是新的两种类
public interface ActionListener extends EventListener
public class ButtonAction implements ActionListener{
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonAction implements ActionListener{
public javax.swing.JTextField nameJtf = null;
public javax.swing.JPasswordField pwdjtf = null;
public void actionPerformed(ActionEvent e){
System.out.println ("按钮被点击了");
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);
}
}
}
理一下思路
你创建的界面的类中会有两个文本框的对象。
当你调用监听器事件后,会自动创建同类型的变量。
这两个对象的地址可以传给 你设置的监听器事件中的变量。
从而在监听器中 对这两个对象进行 *** 作达到点击按钮产生变化的目的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)