给老师安排课表JAVA项目及登录窗口的实现
实现一个安排课表的Java实验。
有以下几点要求:
①用所给的教师姓名进行课表安排
②用所给的地点进行课表安排
③不得有重复的课程名称出现
④将信息写入到文件里
⑤用窗口来进行实现
package com.xu;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*; import java.io.*; public class manageclass extends JFrame{
public manageclass() throws FileNotFoundException
{
this.setTitle("请登录");
this.setLayout(null);
//创建容器
Container c=this.getContentPane();
//创建课程名称标签
JLabel jl1=new JLabel("课程名称:");
//创建任课老师标签
JLabel jl2=new JLabel("任课老师:");
//创建上课地点标签
JLabel jl3=new JLabel("上课地点:");
//创建课程名称文本框
final JTextField jt=new JTextField();
//创建任课老师文本框
final JTextField jt2=new JTextField();
//创建上课地点文本框
final JTextField jt3=new JTextField();
//创建保存按钮
JButton jb=new JButton("保存");
//在容器中加入所有标签和按钮
c.add(jl1);
c.add(jl2);
c.add(jl3);
c.add(jt);
c.add(jt2);
c.add(jt3);
c.add(jb);
//设置标签和文本框,按钮的位置
//x,y,width,height
jl1.setBounds(10, 20, 90, 40);
jl2.setBounds(10, 70, 90, 40);
jl3.setBounds(10, 120, 90, 40);
jt.setBounds(80, 20, 210, 40);
jt2.setBounds(80,70,210,40);
jt3.setBounds(80, 120,210,40);
jb.setBounds(100, 180, 60, 30);
//监听器的功能实现
jb.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
boolean flag = true;
//初始化文件的写入
File file=new File("E:\\数据.txt");
Writer out=null;
try {
out = new FileWriter(file,true);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//来判断任课老师是否是规定的老师姓名
if(jt2.getText().trim().equals(teacher[0])||jt2.getText().trim().equals(teacher[1])||jt2.getText().trim().equals(teacher[2])||jt2.getText().trim().equals(teacher[3])||jt2.getText().trim().equals(teacher[4]))
{
//来判断上课地点是否为规定的上课地点
if(jt3.getText().trim().equals(where[0])||jt3.getText().trim().equals(where[1])||jt3.getText().trim().equals(where[2])||jt3.getText().trim().equals(where[3]))
{
//对第一个数据的存储
if(num==0)
name[num]=jt.getText().trim();
//对于其它的数据存储
else
{
for(int i=0;i<num;i++)
{
//如果和之前的课程名称相重,则不进行添加,并重新输入
if(jt.getText().trim().equals(name[i]))
{
JOptionPane.showMessageDialog(null, "课程重复,请重新输入!");
flag=false;
break;
}
//否则就将该信息加入到数组里
else
name[num]=jt.getText().trim();
}
}
//如果不重
if(flag==true)
{
t1[num]=jt2.getText().trim();
w1[num]=jt3.getText().trim();
String s="课程名称:"+name[num]+" 任课老师:"+t1[num]+" 上课地点:"+w1[num];
//再输出窗口输出信息同时写入到文件里
System.out.println(s);
try {
out.write(s);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
out.write("\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//注意要将缓冲区刷新出来
try {
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
num++;
}
}
else
{
JOptionPane.showMessageDialog(null, "无该地点!");
}
}
else {
JOptionPane.showMessageDialog(null, "无该老师!");
}
//注意将文本框清除
jt.setText("");
jt2.setText("");
jt3.setText("");
}
}); //设置界面大小及可见
this.setSize(500,300);
this.setVisible(true);
this.setResizable(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
//课程名称
static String[] name=new String[1000];
//总共信息条数
static int num=0;
//老师信息
static String[] teacher=new String[1000];
//地点信息
static String[] where=new String[1000];
//实际存储老师信息
static String[] t1=new String[1000];
//实际存储地点信息
static String[] w1=new String[1000]; public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
teacher[0]="王建民";
teacher[1]="刘立嘉";
teacher[2]="刘丹";
teacher[3]="王辉";
teacher[4]="杨子光";
where[0]="一教";
where[1]="二教";
where[2]="三教";
where[3]="基教";
new manageclass(); }
}




实现一个简单的登录界面,其中注册页面被锁定//后期会改善,验证码采用随机数的原理,可以任意的生成一个小写/大写/数字1-9的六位验证码
package com.JTextField;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
import java.awt.Font;
import java.awt.Graphics; /*
* 2018316
* xulifeng
* 2019-9-21
*/ public class JTextFieldTest extends JFrame{
//private static final long serialVersionUID = -1929142760043481303L;
static String s=new String();
public String random()
{
Random r=new Random();
String result = "";
//进行6次循环
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (r.nextInt(26) + 97);
int x=(r.nextInt(9)+49);
int f=r.nextInt(2);
//将intValue强制转换为char后连接到result后面
if(f==1)
result = result + (char)intVal;
else
result = result + (char)x;
}
return result;
}
public JTextFieldTest()
{
this.setTitle("请登录");
this.setLayout(null);
//创建容器
Container c=this.getContentPane();
//创建用户名标签
JLabel jl1=new JLabel("用户名:");
//创建密码标签
JLabel jl2=new JLabel("密码:");
//创建验证码标签
JLabel jl3=new JLabel("验证码:");
//创建文本框
final JTextField jt=new JTextField();
//创建验证码输入文本框
final JTextField jt2=new JTextField();
//创建验证码比对文本框按钮
s=this.random();
JButton jb3=new JButton(s); jb3.setFont(new Font("楷体", Font.BOLD,20)); jb3.setForeground(Color.pink);
//创建密码框
final JPasswordField jp=new JPasswordField();
jp.setEchoChar('*');
//创建登录按钮
JButton jb=new JButton("登录");
//创建注册按钮
JButton jb2=new JButton("注册");
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(jt.getText().trim().equals("xlf")&&new String(jp.getPassword()).trim().equals("fengge")&&jt2.getText().trim().equals(s))
{
JOptionPane.showMessageDialog(null, "登陆成功!");
System.exit(-1);
}
else if(jt.getText().trim().equals("")||new String(jp.getPassword()).trim().equals("")||jt2.getText().trim().equals(""))
{
JOptionPane.showMessageDialog(null, "不能为空");
}
else
{
JOptionPane.showMessageDialog(null, "登录错误");
}
jt.setText("");
jp.setText("");
jt2.setText(""); Random r=new Random();
String result = "";
//进行6次循环
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (r.nextInt(26) + 97);
int x=(r.nextInt(9)+49);
int f=r.nextInt(2);
//将intValue强制转换为char后连接到result后面
if(f==1)
result = result + (char)intVal;
else
result = result + (char)x;
}
s=result;
jb3.setText(s);
}
});
jb2.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "注册成功\n用户名:xlf\n密码:fengge");
jt.setText("");
jp.setText("");
jt2.setText(""); Random r=new Random();
String result = "";
//进行6次循环
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (r.nextInt(26) + 97);
int x=(r.nextInt(9)+49);
int f=r.nextInt(2);
//将intValue强制转换为char后连接到result后面
if(f==1)
result = result + (char)intVal;
else
result = result + (char)x;
}
s=result;
jb3.setText(s);
}
});
jb3.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub Random r=new Random();
String result = "";
//进行6次循环
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (r.nextInt(26) + 97);
int x=(r.nextInt(9)+49);
int y=(r.nextInt(26)+65);
int f=r.nextInt(3);
//将intValue强制转换为char后连接到result后面
if(f==1)
result = result + (char)intVal;
else if(f==0)
result = result + (char)x;
else
result = result + (char)y;
}
s=result;
jb3.setText(s);
}
});
this.getRootPane().setDefaultButton(jb);
c.add(jb);
c.add(jb2);
c.add(jl1);
c.add(jl2);
c.add(jl3);
c.add(jt);
c.add(jp);
c.add(jt2);
c.add(jb3);
jl1.setBounds(10, 20, 90, 40);
jt.setBounds(60, 20, 210, 40);
jl2.setBounds(25, 70, 90, 40);
jl3.setBounds(10, 120, 90, 40);
jp.setBounds(60, 70, 210, 40);
jt2.setBounds(60, 120,100,40);
jb3.setBounds(180,120,100,40);
jb.setBounds(100, 180, 60, 30);
jb2.setBounds(100, 220, 60, 30);
//设置窗体格式
this.setSize(500,300);
this.setVisible(true);
this.setResizable(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new JTextFieldTest();
} }





这是对窗体的初步练习,后期有待提高下拉框的实现和注册页面的改善
给老师安排课表JAVA项目及登录窗口的实现的更多相关文章
- 利用JAVA制作简单登录窗口
import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; ...
- UCenter在JAVA项目中实现的单点登录应用实例
Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准. 基于UCenter,可以将Comsenz旗下的Discuz! ...
- 7个Java项目,或许你的大学老师就会布置
前言: 有天吃饭和朋友聊天,说到大学老师布置的开发项目,结果我们一干人说出来的都基本一样,入门级别的计算器啦,稍微大一点的记事本啦,然后到后面的图书管理系统啊,购物网站啊-- 发现这些项目都是大学老师 ...
- Java项目接入sso单点登录
最近在落地cat(java开发的一款开源监控系统)接入公司的内部项目,其中有项需求是接入公司的sso单点登录系统.研究了公司之前java项目接入sso系统,大部分是采用spring框架,然后依赖spr ...
- java在线聊天项目 swt可视化窗口Design 登录框注册按钮点击改变窗口大小——出现注册面板 实现打开登录框时屏幕居中
登录框注册按钮点击改变窗口大小——出现注册面板 首先用swt可视化设计登录窗口如下图: 此时窗口高度为578 没点击注册时高度为301(可自己定) 注意:注册用户的Jpanel 的border选择T ...
- Java项目:学生成绩管理系统(二)
学生成绩管理系统(二):项目介绍 一.设计要求: 1.1 简单的图形界面登录功能. 1.2 对数据库的的信息的查询功能. 1.3 对数据库的的信息的修改功能. 1.4 对数据库的的信息的删除功能. 1 ...
- 使用maven来管理您的java项目
maven是一个项目管理工具,使用maven可以自动管理java项目的整个生命周期,包括编译.构建.测试.发布和报告等.在大型项目开发中,使用maven来管理是必不可少的. 一.安装maven 1.W ...
- java项目——数据结构实验报告
java项目——数据结构总结报告 20135315 宋宸宁 实验要求 1.用java语言实现数据结构中的线性表.哈希表.树.图.队列.堆栈.排序查找算法的类. 2.设计集合框架,使用泛型实现各类. ...
- Java项目经验
Java项目经验 转自CSDN. Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的 ...
随机推荐
- 江苏 徐州邀请赛 icpc B Array dp 滚动数组模板
题目 题目描述 JSZKC is the captain of the lala team. There are N girls in the lala team. And their height ...
- 给 Flutter 界面切换来点特效
本文微信公众号「AndroidTraveler」首发. 背景 我们知道页面之间如果直接切换,会比较生硬,还会让用户觉得很突兀,用户体验不是很好. 因此一般情况下,页面之间的切换为了达到平滑过渡,都会添 ...
- .NET Core 3.0及ASP.NET Core 3.0 前瞻
前几天微软发布了 .NET Core 3.0 Preview 9 ,这是.NET Core 3.0 最后一个预览版. .NET Core 3.0 正式发布将在.NET Conf 上发布,.NET Co ...
- JS-特效 ~ 04. client对象、网页可视区域的宽高、client / offset / scroll 三大家族的区别、冒泡事件、事件委托、获取内嵌式和外链式属性getStyle(ele,attr) ;、缓动动画封装
知识点: 模拟滚动条的解除事件问题 : event内置对象,包含 了大量事件: page兼容性: pageX || clientX + scool().top : if (true === a)tr ...
- MySQL索引原理及SQL优化
目录 索引(Index) 索引的原理 b+树 MySQL如何使用索引 如何优化 索引虽好,不可滥用 如何验证索引使用情况? SQL优化 explain查询执行计划 id select_type tab ...
- Winform中实现读取xml配置文件并动态配置ZedGraph的RadioGroup的选项
场景 Winform中对ZedGraph的RadioGroup进行数据源绑定,即通过代码添加选项: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- SpringCloud(四)Hystrix熔断器
前面已经学习了服务注册与发现组件,负载均衡组件,这样我们的微服务系统已经可以使用了.为了保证其高可用,单个服务通常会集群部署.由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出 ...
- Git服务端下载
链接:http://pan.baidu.com/s/1kVshpQ3提取密码:4g36
- mybatis源码专题(1)--------复习jdbc操作,编译mybatis源码,准备为你的简历加分吧
本文是作者原创,版权归作者所有.若要转载,请注明出处.文章中若有错误和疏漏之处,还请各位大佬不吝指出,谢谢大家. 1.mybatis的底层是jdbc操作,我们来回顾一下,如下 运行以后的结果如下图: ...
- 03 jvm的组成
声明:本博客仅仅是一个初学者的学习记录.心得总结,其中肯定有许多错误,不具有参考价值,欢迎大佬指正,谢谢!想和我交流.一起学习.一起进步的朋友可以加我微信Liu__66666666 这是简单学习一遍之 ...