界面
什么是界面?
界面,指的是呈现在用户面前吗,显示器屏幕上的图形状态。比如我们常用到的登录界面,对话框等
界面开发相关基础知识
类与对象的创建
关键字:new
语法格式:类名 对象名=new 类名();//类名不能用到java本身的关键字,类名对象名多采用驼峰式命名
3.用对象调用方法:对象名.方法名();//如果设置了参数,括号内写入参数数据
包
指界面开发要用的包,这里用到的都是java的源码包
界面开发包:
java.awt
包含内容:尺寸类(Dimension),流式布局类(FlowLayout),颜色类(Color),字体类(Font)
javax.swing
包含内容:窗体类(JFrame),按钮类(JButton),标签类(JLabel),文本输入框类(JTextField),密码输入框类(JTextField)
界面开发步骤
创建⼀个自己的类 LoginUI 用来写代码,并事先导入合适的包
在类中创建⼀个方法initUI() 创建界面的代码都写在这个方法中,然后调用方法就可以了
在方法中,将以上所有的类创建对象
package com.zx0222;//先导入界面开发要用到的包,这里是自己命名的包
import javax.swing.*;
import java.awt.*;
//创建类名
public class LoginUI {
LoginListener login1=new LoginListener();//LoginListener是后续事件监听器要到的类,下文会有介绍
//创建要执行的方法
public void initUI(){
//创建窗体对象并设置其属性
设置窗体对象的属性: 标题尺寸关闭操作布局可视化
设置按钮以及文字标签的文本
设置输入框的尺寸Dimension
使用窗体对象调用add方法添加标签、输入框和按钮
JFrame jf=new JFrame();
jf.setTitle("登录界面");
jf.setSize(500,300);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建布局对象flow,并设置属性
FlowLayout flow=new FlowLayout();
jf.setLayout(flow);
JTextField textIn=new JTextField();
JTextField textOut=new JTextField();
Dimension dimension=new Dimension();
dimension.setSize(150,30);
textIn.setPreferredSize(dimension);
textOut.setPreferredSize(dimension);
//创建组件对象btn,并设置属性
JButton btn=new JButton();
btn.setText("登录");
//窗体对象添加组件对象
jf.add(textIn);
jf.add(btn);
jf.add(textOut);
btn.addActionListener(login1);//在方法中使用按钮对象,来调用addActionListener
jf.setVisible(true);//设置输入框为可见
//传输入框对象的引用给监听器对象中的两个输入框变量
login1.textIn1=textIn;
login1.textOut1=textOut;
在类中创建一个主函数,创建LoginUI对象,并调用initUI方法
public static void main(String[] args){
LoginUI loginui=new LoginUI();//创建LoginUI的对象
loginui.initUI();//对这个对象调用intiUI方法
}
事件监听器
什么是事件监听器?
事件监听器是由事件类和监听接口组成,是为了事先上文代码之后,我们点击按钮后可以调用自己写的代码,即点击按钮来实现新的功能
事件监听器开发步骤
导入符合要求的包
另创建一个新的类,并在这个类中使用"implements"实现另一个java程序自带的类,即ActionListener
package com.zx0222;
import javax.swing.*;
import java.awt.event.ActionListener;//导入ActionListener所在的包路径
import java.awt.event.ActionEvent;
import java.util.Random;//这里导入的是Random所在的包路径,体现在后续的猜数字游戏代码
//创建LoginListener这个类,并准备在这个类中实现ActionListener
public class LoginListener implements ActionListener {
在类中使用LoginUI类中已经创建的对象
package com.zx0222;
//事先导入ActionListener的包
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Random;
//创建LoginListener这个类,并准备在这个类中实现ActionListener
public class LoginListener implements ActionListener {
public JTextField textIn1;
public JTextField textOut1;//用到的是之前LoginUI类中设置好的文本输入框的对象
下面这里是猜数字游戏代码,读者可以先不用太关注这里的代码逻辑,重点理解界面开发到事件监听器的开发思路,整体框架
public void actionPerformed(ActionEvent e){
if(count==0){
count=new Random().nextInt(99)+1;//为了实现1-100
min=0;
max=100;
}
System.out.println("按钮被点击");
String text=textIn1.getText();//为了获取输入框中的内容
textOut1.setText(text);
int num=Integer.parseInt(text);
if(num<=min||num>=max){
textOut1.setText("猜对了,答案是"+count+"请继续下一局");
System.out.println("猜对了");
count=0;
return;
}else{
if (num < count) {
textOut1.setText("没猜中现在是"+num+"--"+max);
System.out.println ("没猜中现在是 " + min + "--" + num);
min = num;
} else if(num > count){
textOut1.setText ("没猜中现在是 " + min + "--" + num);
System.out.println ("没猜中现在是 " + min + "--" + num);
max = num;
}
return;
}
}

效果呈现
下面是猜数字游戏的效果展示

