设计窗口,实现课程的登记,并且将相应的数据写入文件之中。保证的是课程名称不可以重复,对于任课老师必须是在已经设定好的五位老师之中。并且上课地点也是在预先设定的范围内。窗口可以持续进行保存,数据将在判断后在写入相应的文件里面,当停止输入是点击X 就好了。对于本人来说碰到的主要难点就是关于flash()的相关应用,然后就是对于怎样在文件原有数据的基础之上继续写入数据。就是在filewriter(file,true);就好了。现在已经解决。

主要的思路基于上次登录窗口的主要思路。

package kechengchuangkou;
import java.util.Random;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import java.io.*;
import javax.swing.*;
public class kecheng extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;//系统进行的添加
static String wen=new String();
private JLabel kechengla;//定义相应的变量
private JLabel laoshila;
private JLabel didianla;
private JTextField kechengtxt;
private JTextField laoshitxt;
private JTextField didiantxt;
private JButton anniu1bt;
private int i=0;
String []dage3=new String[100];
public kecheng()
{
this.setTitle("登录窗口界面");
//课程名称的文本
kechengla=new JLabel();
kechengla.setText("课程名称:");
kechengla.setSize(60,50);
kechengla.setLocation(90,70);
//课程名称的输入框
kechengtxt=new JTextField();
kechengtxt.setSize(120,28);
kechengtxt.setLocation(150,80);
//老师文本
laoshila=new JLabel();
laoshila.setText("任课教师:");
laoshila.setSize(60,50);
laoshila.setLocation(90,120);
//老师输入框
laoshitxt=new JTextField();
laoshitxt.setSize(120,28);
laoshitxt.setLocation(150,135);
//登录按钮
anniu1bt=new JButton("保 存");
anniu1bt.setSize(120,25);
anniu1bt.setLocation(140,220);
//地点文本
didianla=new JLabel();
didianla.setText("上课地点:");
didianla.setSize(70, 50);
didianla.setLocation(80,165);
//地点文本框
didiantxt= new JTextField();
didiantxt.setSize(120, 28);
didiantxt.setLocation(150, 180);
//判断
String []dage=new String[5];//两个数组进行后面的判断
dage[0]="王建民";
dage[1]="刘力嘉";
dage[2]="刘丹";
dage[3]="王辉";
dage[4]="杨子光";
String []dage2=new String[4];
dage2[0]="一教";
dage2[1]="二教";
dage2[2]="三教";
dage2[3]="基教";
//设置监听事件
anniu1bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{//判断是否老师输入符合要求
if(new String(laoshitxt.getText()).trim().equals(dage[0])||new String(laoshitxt.getText()).trim().equals(dage[1])||new String(laoshitxt.getText()).trim().equals(dage[2])||new String(laoshitxt.getText()).trim().equals(dage[3])||new String(laoshitxt.getText()).trim().equals(dage[4]))
{//判断是否地点输入符合要求
if(didiantxt.getText().trim().equals(dage2[0])||didiantxt.getText().trim().equals(dage2[1])||didiantxt.getText().trim().equals(dage2[2])||didiantxt.getText().trim().equals(dage2[3]))
{
int w1=0;
int w2=dage3.length;
for(w1=0;w1<w2;w1++)
{
if(kechengtxt.getText().trim().equals(dage3[w1]))
{
JOptionPane.showMessageDialog(null, "课程信息保存失败!");
System.exit(-1);
}
}//下面将会把相应的诗句写入文件中
dage3[i]=kechengtxt.getText().trim();
i++;
File file2=new File("D:\\新建文件夹 (6)\\piao1.txt");
try {
if(!file2.exists())
{
try
{
file2.createNewFile();
System.out.println("数据输出的指向文件不存在已经为您新建一个以保留运行结果请继续操作");
}
catch(Exception e)
{
e.printStackTrace();
}
}
FileWriter fw = new FileWriter(file2,true);
BufferedWriter bw=new BufferedWriter(fw);
bw.write("课程名称 :"+kechengtxt.getText().trim());
bw.write(" ");
bw.write("任课老师 : "+laoshitxt.getText());
bw.write(" ");
bw.write("上课地点 : "+didiantxt.getText().trim());
bw.newLine();
bw.flush();
bw.close();
System.out.println("写入文件完成请继续输入或者点击X停止输入");
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
JOptionPane.showMessageDialog(null, "上课地点错误保存失败!");
System.exit(-1);
}
}
else
{
JOptionPane.showMessageDialog(null, "任课老师错误保存失败!");
System.exit(-1);
}
kechengtxt.setText("");
laoshitxt.setText("");
didiantxt.setText("");
}
});
this.setLayout(null);//告知管理器这里不用布局管理器
this.getRootPane().setDefaultButton(anniu1bt);//按回车需要执行的按钮操作
this.setSize(400, 400);
this.add(kechengla);
this.add(kechengtxt);
this.add(laoshila);
this.add(laoshitxt);
this.add(didianla);
this.add(didiantxt);
this.add(anniu1bt);
this.setVisible(true);//使窗口可视
this.setResizable(true);//生成的窗口是否可以自由改变大小
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
new kecheng();
}
}

package kechengchuangkou;import java.util.Random;import java.awt.Color;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.*;import java.io.*;import javax.swing.*;public class kecheng  extends JFrame {/** *  */private static final long serialVersionUID = 1L;//系统进行的添加static String wen=new String();private JLabel kechengla;//定义相应的变量private JLabel laoshila;private JLabel didianla;private JTextField kechengtxt;private JTextField laoshitxt;private JTextField didiantxt;private JButton anniu1bt;private int i=0;    String []dage3=new String[100];public kecheng(){this.setTitle("登录窗口界面");//课程名称的文本kechengla=new JLabel();kechengla.setText("课程名称:");kechengla.setSize(60,50);kechengla.setLocation(90,70);//课程名称的输入框kechengtxt=new JTextField();kechengtxt.setSize(120,28);kechengtxt.setLocation(150,80);//老师文本laoshila=new JLabel();laoshila.setText("任课教师:");laoshila.setSize(60,50);laoshila.setLocation(90,120);//老师输入框laoshitxt=new JTextField();laoshitxt.setSize(120,28);laoshitxt.setLocation(150,135);//登录按钮anniu1bt=new JButton("保   存");anniu1bt.setSize(120,25);anniu1bt.setLocation(140,220);        //地点文本        didianla=new JLabel();        didianla.setText("上课地点:");        didianla.setSize(70, 50);        didianla.setLocation(80,165);        //地点文本框        didiantxt= new JTextField();        didiantxt.setSize(120, 28);        didiantxt.setLocation(150, 180);        //判断        String []dage=new String[5];//两个数组进行后面的判断        dage[0]="王建民";        dage[1]="刘力嘉";        dage[2]="刘丹";        dage[3]="王辉";        dage[4]="杨子光";        String []dage2=new String[4];        dage2[0]="一教";        dage2[1]="二教";        dage2[2]="三教";        dage2[3]="基教";        //设置监听事件        anniu1bt.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0){//判断是否老师输入符合要求if(new String(laoshitxt.getText()).trim().equals(dage[0])||new String(laoshitxt.getText()).trim().equals(dage[1])||new String(laoshitxt.getText()).trim().equals(dage[2])||new String(laoshitxt.getText()).trim().equals(dage[3])||new String(laoshitxt.getText()).trim().equals(dage[4])){//判断是否地点输入符合要求if(didiantxt.getText().trim().equals(dage2[0])||didiantxt.getText().trim().equals(dage2[1])||didiantxt.getText().trim().equals(dage2[2])||didiantxt.getText().trim().equals(dage2[3])){int w1=0;int w2=dage3.length;for(w1=0;w1<w2;w1++){if(kechengtxt.getText().trim().equals(dage3[w1])){JOptionPane.showMessageDialog(null, "课程信息保存失败!");System.exit(-1);}}//下面将会把相应的诗句写入文件中dage3[i]=kechengtxt.getText().trim();i++;File file2=new File("D:\\新建文件夹 (6)\\piao1.txt");try {   if(!file2.exists())   {   try  {file2.createNewFile();System.out.println("数据输出的指向文件不存在已经为您新建一个以保留运行结果请继续操作");  }  catch(Exception e)  {e.printStackTrace();  } }FileWriter fw = new FileWriter(file2,true);BufferedWriter bw=new BufferedWriter(fw);bw.write("课程名称  :"+kechengtxt.getText().trim());bw.write("  ");bw.write("任课老师 : "+laoshitxt.getText());bw.write("  ");bw.write("上课地点 : "+didiantxt.getText().trim());bw.newLine();bw.flush();bw.close();System.out.println("写入文件完成请继续输入或者点击X停止输入");} catch (IOException e) {e.printStackTrace();}}else{JOptionPane.showMessageDialog(null, "上课地点错误保存失败!");System.exit(-1);}}else{JOptionPane.showMessageDialog(null, "任课老师错误保存失败!");System.exit(-1);}kechengtxt.setText("");laoshitxt.setText("");didiantxt.setText("");}        }); this.setLayout(null);//告知管理器这里不用布局管理器     this.getRootPane().setDefaultButton(anniu1bt);//按回车需要执行的按钮操作     this.setSize(400, 400);     this.add(kechengla);     this.add(kechengtxt);     this.add(laoshila);     this.add(laoshitxt);     this.add(didianla);     this.add(didiantxt);     this.add(anniu1bt);     this.setVisible(true);//使窗口可视     this.setResizable(true);//生成的窗口是否可以自由改变大小     this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args){new kecheng();}}

课程登记窗口java的更多相关文章

  1. atitit.窗口静听esc退出本窗口java swing c# .net php

    atitit.窗口静听esc退出本窗口java swing c# .net php 1. 监听esc  按键 1 1.1. 监听一个组件 1 1.2. 监听加在form上 1 2. 关闭窗口 2 1. ...

  2. JAVA课程之简易课程登记

    实现技术JSP+Servlet+MySQL 思想:首先前台用jsp获取数据,然后用Form表单传值给Servlet,Servlet操作MySQL,获取数据再通过jsp显示 1.jsp功能选择界面 &l ...

  3. [视频解说]0基础课程-运营商-Java它J2se

    本节解说 运营商应用 Java 算被分成: 算术运算符 颂值运营商 逻辑运算符 位运算符 元运算符 这里录制了 视频解说这几大类运算符,并有练习题提供大家 面试题: 1. 最有效率的方式算出2乘以8等 ...

  4. 麻省理工18年春软件构造课程阅读02“Java基础”

    本文内容来自MIT_6.031_sp18: Software Construction课程的Readings部分,采用CC BY-SA 4.0协议. 由于我们学校(哈工大)大二软件构造课程的大部分素材 ...

  5. 201403-2 窗口 Java

    要想到定义一个窗口类,判断点在不在矩形里好判断 需要一个数组,存放结果 import java.util.ArrayList; import java.util.List; import java.u ...

  6. 登录窗口java

    这次代码是登录窗口的制作. 主要的方面是是包括,用户名.密码.验证码.以及输入数据所需要的文本框,对于验证码可以通过点击验证码进行修改.同时对于验证码的前景色和背景色同时都得到修改. 点击注册(这里还 ...

  7. Java 小样例:图书馆课程设计(Java 8 版)

    用 Java 模拟一个图书馆.包含创建图书.创建读者.借书.还书.列出全部图书.列出全部读者.列出已借出的图书.列出过期未还的图书等功能. 每一个读者最多仅仅能借 3 本书,每一个书最多仅仅能借 3 ...

  8. 北京大学信息科学技术学院计算机专业课程大纲选摘--JAVA

  9. JAVA面向对象编程课程设计——网络版单机斗地主

    一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...

随机推荐

  1. gcc错误[Error] ld returned 1 exit status

    出现这个错误的原因是:(目前遇见两种情况了) 你的编译器正在执行刚刚的程序还没关:小黑框还在. 解决措施:关闭就好. 定义的函数和调用的函数名字不一样,也会造成产生这种错误!!!代码如下: bool ...

  2. 测试必知必会系列- Linux常用命令 - mkdir

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! 新建一个文件夹 yyTest mkdir yyTest 新建三个文件夹 yyTest1 yyTest2 yyTe ...

  3. Java设计模式学习笔记三

    工厂模式 简单工厂模式(不属于23种设计模式之一) 属于创建型模式,是工厂模式的一种.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式: 简单工厂 ...

  4. nlogn的最长不下降子序列【tyvj1254挑选士兵】

    var a,d:Array[-..]of longint; i,n,m,k,l:longint; function erfen(x:longint):longint; var mid,h,t:long ...

  5. StringBuilder内存碎片对性能的影响

    StringBuilder内存碎片对性能的影响 TL;DR: StringBuilder内部是由多段char[]组成的半自动链表,因此频繁从中间修改StringBuilder,会将原本连续的内存分隔为 ...

  6. kerberos系列之zookeeper的认证配置

    本篇博客介绍配置zookeeper的kerberos配置 一.zookeeper安装 1.解压安装包和重命名和创建数据目录 tar -zxvf /data/apache-zookeeper-3.5.5 ...

  7. 第三届上海市大学生网络安全大赛 流量分析 WriteUp

    题目链接: https://pan.baidu.com/s/1Utfq8W-NS4AfI0xG-HqSbA 提取码: 9wqs 解题思路: 打开流量包后,按照协议进行分类,发现了存在以下几种协议类型: ...

  8. Python3学习之路~9.3 GIL、线程锁之Lock\Rlock\信号量、Event

    一 Python GIL(Global Interpreter Lock) 全局解释器锁 如果一个主机是单核,此时同时启动10个线程,由于CPU执行了上下文的切换,让我们宏观上看上去它们是并行的,但实 ...

  9. 【开源】使用Angular9和TypeScript开发RPG游戏

    RPG系统构造 通过对于斗罗大陆小说的游戏化过程,熟悉Angular的结构以及使用TypeScript的面向对象开发方法. 项目地址 人物 和其他RPG游戏类似,游戏里面的人物角色大致有这样的一些属性 ...

  10. python之路---装饰器函数

    阅读目录 楔子 装饰器的形成过程 开放封闭原则 谈装饰器主要功能和装饰器固定结构 带参数的装饰器 多个装饰器装饰一个函数 返回顶部 楔子 作为一个会写函数的python开发,我们从今天开始要去公司上班 ...