java期末复习之图形界面

本文介绍了一个简单的Java Swing程序,用于求解一元二次方程的根,并展示了如何创建图形用户界面(GUI),包括组件布局及事件监听器的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GUI(Graphics User Interface):图形用户界面,gui编程即图形用户界面编程.
容器类(Container)和组件类(Component):Component的子类是Container,即容器本身也是一个组件,Container的子类有JComponent和Window,JComponent里包含JButton,JLable等常用组件,Window里包含JFrame,JDialog等常用容器.

做一个简单的求一元二次方程根的图形界面

窗口类:创建一个JFrame的子类,图形界面的组成以及点击按钮所做的操作都放在窗口类里.

package 求一元二次方程根;
import javax.swing.*;/*java后期新增的界面设计包*/
import java.awt.*;/*java早期进行进行用户界面设计时使用的包*/
import java.awt.event.*;/*引入ActionListener接口*/
import static javax.swing.JFrame.*;/*引入JFrame中的静态常量*/
class Win extends JFrame implements ActionListener{/*父类是JFrame,接口是ActionListener*/
	JLabel b1=new JLabel("二次项系数");
	JLabel b2=new JLabel("一次项系数");
	JLabel b3=new JLabel("常数");
	JLabel b4=new JLabel("方程的根");/*标签即提示信息,直接在构造方法里输入字符串*/
	JTextField tf1=new JTextField(10);
	JTextField tf2=new JTextField(10);
	JTextField tf3=new JTextField(10);
	JTextField tf4=new JTextField(50);/*文本框是用户输入信息的地方,构造方法用来设置宽度*/
	JButton btn1=new JButton("求根");
	JButton btn2=new JButton("清空");/*按钮的构造方法是按钮上显示的内容*/
Win(String s,int w,int h)/*关于界面的组成和布局都写在构造方法里,构造方法的三个参数是窗口标题、长、宽*/
{super(s);
setSize(w,h);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE)	;/*以上三个方法在创建窗口时必须调用,其中setDfaultCloseOperation参数是int型static常量*/
setLayout(new FlowLayout());/*流式布局*/
add(b1);
add(tf1);
add(b2);
add(tf2);
add(b3);
add(tf3);
add(b4);
add(tf4);/*由于采用流式布局,界面上显示的顺序即添加的顺序*/
tf4.setEnabled(false);/*使文本框只能显示内容,不可编辑,如果使用setEditable(boolean b)也可以使文本框不可编辑,但是我试了一下这样会使两个按钮消失,我也不知道为什么会这样?*/
add(btn1);
add(btn2);
btn1.addActionListener(this);/*方法中的参数是接口类型,当组件使用这个方法时,能将这一个类型的接口的类的实例注册为事件源的监视器,而this表示当前类的实例会成为btn1的监视器,即action类型接口的实例*/
btn2.addActionListener(this);
}
public void actionPerformed(ActionEvent e)/*重写接口中的唯一方法,传入的e是ActionEvent类的对象*/
{if(e.getSource()==btn1)/*通过getsource区分事件源,以下是点击btn1的操作*/
 {String s1=tf1.getText();
String s2=tf2.getText();
String s3=tf3.getText();
try/*由于要将字符串转换为整形,可能存在输入的不仅是整形的情况,如不小心输入12a,所以要用try-catch*/
{int a=Integer.parseInt(s1);
int b=Integer.parseInt(s2);
int c=Integer.parseInt(s3);
if(a==0) tf4.setText("不是一元二次方程");
else {
	if(b*b-4*a*c<0) 
	tf4.setText("无实数根");
	if(b*b-4*a*c==0)
	tf4.setText(-b/(2*a)+"");/*通过数字+""直接将数字转化为字符串*/
	if(b*b-4*a*c>0)
	{double d1=(-b+Math.sqrt(b*b-4*a*c))/(2*a);
	double d2=(-b-Math.sqrt(b*b-4*a*c))/(2*a);
	tf4.setText(d1+"  "+d2);
}
}
}
catch(Exception p) {
	System.out.println("重新输入数据");/*也可以改成JOptionPane.showMessageDialog(null, "请重新输入数据");会弹出消息图形对话框*/
}
}
if(e.getSource()==btn2)
	tf1.setText(null);
	tf2.setText(null);
	tf3.setText(null);
	tf4.setText(null);
}
}
}

Test类:只放主程序

package 求一元二次方程根;

public class Test {public static void main(String args[]) {
	Win Win1=new Win("一元二次方程求根",1000,1000);
}
}

运行结果如下:在这里插入图片描述

1. 总体介绍 本次项目主要以本学期所学内容为基础,采用servlet+jsp+jdbc的技术以及mvc模式进行项目开发,本次开发的内容主要以实现CRUD核心功能为主的教务管理系统,分为学生端和教师端,前端采用jquery进行数据传输以及处理,bootstap写界面。 2. 技术架构 运行环境:tomcat9+mysql5+maven3.8+jdk8 前端技术:jquery 用以数据处理以及前端验证以及生成验证码等等 Bootstrap 前端界面处理 后端技术:servelt+jsp maven进行jar包和第三方库管理 采用jspsmart进行文件的操作处理 数据库:mysql5 基于MVC的分层思想及采用jsp+servelt技术的B/S结构的应用系统,系统主要开发语言为JAVA,JSP。数据库要求使用MySQL8.0,应用服务器选用Tomcat服务器 3. 功能介绍 系统能够提供用户有好的界面 系统具有良好的允许效率 系统具有良好的扩充性,灵活性 系统管理操作简单易懂 3.1 总体结构 3.2 模块详情 学生模块: 注册: 1. 用户点击注册,进行注册; 2. 用户输入注册信息; 3. 校验数据:如果用户名重复或者两次密码校验不合格或者密码规格不符合,则提示错误信息; 4. 若信息无错误,提示注册成功,跳转到登录页。 登录: 1. 用户进入系统未进行登录则自行跳转登录页面; 2. 点击忘记密码可进行密码找回; 3. 提交信息进行校验,查看用户名密码是否为空以及是否符合格式,随后在后台进行校验,合格则进行登录跳转到用户界面; 4. 若登录信息不正确,则提示登录错误信息。 查看成绩: 1. 点击查看成绩,打印成绩列表; 2. 支持到处成绩单为pdf格式。 导出成绩: 1. 点击到处按钮; 2. 系统自动处理并到处成pdf。 个人信息管理: 1. 选择上传头像 2. 修改个人信息:按需填写个人信息,随后进行保存则覆盖修改以往的个人信息。 退出登录: 1. 点击退出登录,自动退出到首页并删除本地和服务器缓存。 教师模块: 注册: 1用户点击注册,进行注册; 2用户输入注册信息; 3校验数据:如果用户名重复或者两次密码校验不合格或者密码规格不符合,则提示错误信息; 4若信息无错误,提示注册成功,跳转到登录页。 登录: 1用户进入系统未进行登录则自行跳转登录页面; 2点击忘记密码可进行密码找回; 3提交信息进行校验,查看用户名密码是否为空以及是否符合格式,随后在后台进行校验,合格则进行登录跳转到用户界面; 4若登录信息不正确,则提示登录错误信息。 个人信息管理: 1选择上传头像 2修改个人信息:按需填写个人信息,随后进行保存则覆盖修改以往的个人信息。 学生管理: 1. 点击添加学生,填写学生信息进行添加; 2. 修改学生信息,点击修改,按需填写要修改的学生信息,进行保存覆盖修改; 3. 点击删除学生数据,提示是否删除,确定则删除,取消则不删除; 4. 查看成绩,点击查看学生成绩,单独列出学生成绩列表; 成绩管理: 1. 点击成绩管理,列出所有学生成绩; 2. 点击修改,勾选需要修改的学生,按需填写修改信息,保存覆盖修改学生信息。 退出登录: 1点击退出登录,自动退出到首页并删除本地和服务器缓存。 4. 页面设计 静态jsp页面和jquery和bootstrap 5. 数据库设计 权限对照表: 表名: role 名称 类型 长度 允许空值 是否主键 注释 uid 整型 11 否 是 权限等级 utype 字符 255 否 否 用户等级名称 分数表: 表名: score 名称 类型 长度 允许空值 是否主键 注释 id 整型 200 否 是 学号 dat 字符 255 否 否 课程1分数 Android 字符 255 否 否 课程2分数 Jsp 字符 255 是 否 课程3分数 学生表: 表名: student 名称 类型 长度 允许空值 是否主键 注释 id 整型 59 否 是 学号 password 字符 255 否 否 登陆密码 Name 字符 255 否 否 学生姓名 Sex 字符 255 是 否 性别 School_date 字符 255 是 否 入学时间 Major 字符 255 是 否 专业 email 字符 255 是 否 邮箱 教师表: 表名: student 名称 类型 长度 允许空值 是否主键 注释 id 整型 59 否 是 教师工号 password 字符 255 否 否 登陆密码 Name 字符 255 否 否 教师姓名 Sex 字符 255 是 否 性别 email 字符 255 是 否 邮箱
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值