JAVA Swing实现窗口添加课程信息过程解析

基本思路:

先创建出一个添加课程信息的框架,随后就设置按钮的鼠标监听事件,确保单机后录入信息的合法性,以及确定合法性之后的后续操作,如保存课程信息,信息有误弹出窗口等操作。

代码

package Test;

import javax.swing.JButton;
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SetClass {
  String str1="添加课程失败,请核对信息后添加",
      str2="添加成功";
  JFrame jf=new JFrame("新课程添加");
  JPanel panel=new JPanel();
  JLabel addclass=new JLabel("课程名称");
  JTextField addclasstext=new JTextField();
  JLabel teacher=new JLabel("任课老师");
  JTextField teachertext=new JTextField();
  JLabel placeclass=new JLabel("上课地点");
  JTextField placeclasstext=new JTextField();
  JButton register=new JButton("添加");

  public boolean judgeText(String filepath,String s)    //判断信息的合法性
  {
    String str="";
    boolean flag=false;
    File file=new File(filepath);
    try {
      FileReader reader=new FileReader(file);
      BufferedReader br=new BufferedReader(reader);
      while((str=br.readLine())!=null)
      {
        if(str.equals(s))
          flag=true;
      }
      br.close();
      reader.close();
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    return flag;

  }
  public void inputFile(String filepath,JTextField jt)  //将信息录入到文件中
  {
    File file=new File(filepath);
    try {
      FileWriter reader = new FileWriter(file,true);
      BufferedWriter bw=new BufferedWriter(reader);
      bw.newLine();
      bw.write(jt.getText());
      bw.close();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
  public void setPanel(JPanel panel)    //设置面板
  {
    panel.setLayout(null);
    addclass.setBounds(30, 30, 80, 25);
    teacher.setBounds(30, 60, 80, 25);
    placeclass.setBounds(30, 90, 80, 25);
    register.setBounds(110, 120, 80, 25);
    register.addActionListener(new ActionListener() {  //增加事件监听器

      @Override
      public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
        if(!judgeText("data", addclasstext.getText())&&judgeText("data", teachertext.getText())&&judgeText("data", placeclasstext.getText().substring(0, 2)))
        {
          inputFile("data",addclasstext);
          inputFile("Xclass",addclasstext);
          inputFile("Xclass",teachertext);
          inputFile("Xclass",placeclasstext);
          new MyJf(str2);
        }
        else
          new MyJf(str1);
      }
    });
    addclasstext.setBounds(105, 30, 165, 25);
    teachertext.setBounds(105, 60, 165, 25);
    placeclasstext.setBounds(105, 90, 165, 25);
    panel.add(addclass);
    panel.add(addclasstext);
    panel.add(teacher);
    panel.add(teachertext);
    panel.add(register);
    panel.add(placeclass);
    panel.add(placeclasstext);
  }

  SetClass() {               //为JFrame窗口设置窗口参数
    // TODO Auto-generated constructor stub
    jf.setSize(340, 250);
    jf.setLocationRelativeTo(null);
    jf.add(panel);
    setPanel(panel);
    jf.setVisible(true);
    jf.setDefaultCloseOperation(3);
  }

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    new SetClass();
  }

}
class MyJf            //创建弹出窗口
{
  JFrame jf1=new JFrame("提示信息");
  JPanel jp1=new JPanel();
  JLabel jl=new JLabel();
  MyJf(String str)
  {
    jl.setText(str);
    jf1.setSize(300, 80);
    jf1.setVisible(true);
    jf1.add(jp1);
    jf1.setDefaultCloseOperation(2);
    jf1.setLocationRelativeTo(null);
    jp1.add(jl);

  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 情人节写给女朋友Java Swing代码程序

    马上又要到情人节了,再不解风情的人也得向女友表示表示.作为一个程序员,示爱的时候自然也要用我们自己的方式. 这里给大家上传一段我在今年情人节的时候写给女朋友的一段简单的Java Swing代码,主要定义了一个对话框,让女友选择是不是喜欢自己.如果她选了"是",皆大欢喜,如果她想选"不",哼哼...看一下截图吧. 代码效果图: 接下来不废话,直接上代码了.新版本已上传,也欢迎大家到我的github上下载和改进代码(点此转到github). 另外就是因为这个代码当时是在

  • Java Swing组件下拉菜单控件JComboBox用法示例

    本文实例讲述了Java Swing组件下拉菜单控件JComboBox用法.分享给大家供大家参考,具体如下: JComboBox是Swing中的下拉菜单控件.它永远只能选中一个项目,然而比单选按钮节省空间.如果使用setEditable设置为true则内部选项的文本可以编辑,因此这种组件被称为组合框.注意,对选项的编辑只会影响当前项,而不会改变列表内容.可以使用addItem方法来添加选项列表,或者使用insertItemAt在任何位置插入选项:然而如果有大量选项需要添加,这种方法是非常笨重的,可

  • Java swing实现酒店管理系统

    今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: package 主框架窗口; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.ActionEven

  • java swing实现QQ账号密码输入框

    本文实例为大家分享了Java swing 仿QQ账号密码输入框,供大家参考,具体内容如下 主要思路是自己定义 AccountPanel 和 PasswordPanel 类,继承JPanel,通过 paintComponent(Graphics g) 方法重绘面板,实现目标样式. 先上效果图 正常显示效果: 鼠标放在控件上时的效果: 腾讯QQ登录界面的账号密码输入部分效果比对: 下面直接给出代码吧 AccountPanel: import java.awt.BasicStroke; import

  • java中Swing五种常见的布局方式

    1. 边界布局(BorderLayout) 2.流式布局(FlowLayout) 3.网格布局(GridLayout) 4.盒子布局(BoxLaYout) 5.空布局(null) 还有其他两种布局,分别是GridBagLayout(网格包布局).CardLayout(卡片布局) 注意:JFrame和JDialog默认布局为BorderLayout,JPanel和Applet默认布局为FlowLayout 边界布局示例代码: import java.awt.BorderLayout; import

  • Java Swing组件编程之JTable表格用法实例详解

    本文实例讲述了Java Swing组件编程之JTable表格用法.分享给大家供大家参考,具体如下: 表格是GUI编程中使用较多,但也是最麻烦的一个控件之一.表格是用来显示二维数据,提供编辑,选择等功能.如果只是显示数据,这还是非常easy的,只要在JTable中传入二维数组或集合就可以了. 示例1: package awtDemo; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTab

  • Java Swing仿QQ登录界面效果

    本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEclipse的拖动功能). 源代码如下: package ibees.qq; import java.awt.BorderLayout; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JButton; impo

  • Java Swing组件实现进度监视功能示例

    本文实例讲述了Java Swing组件实现进度监视功能.分享给大家供大家参考,具体如下: 实例一: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ProgressMonitor; import javax.swing.Timer; public class TestProgressMonitor { Timer timer; public void init(

  • JAVA Swing实现窗口添加课程信息过程解析

    基本思路: 先创建出一个添加课程信息的框架,随后就设置按钮的鼠标监听事件,确保单机后录入信息的合法性,以及确定合法性之后的后续操作,如保存课程信息,信息有误弹出窗口等操作. 代码 package Test; import javax.swing.JButton; import java.io.*; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.

  • Java Elastic Job动态添加任务实现过程解析

    背景 在使用Elastic-Job的过程中,有很多人遇到了这么一个问题,就是如何动态的去添加任务? 在官方的文档中也有对此作出回答,如下: 动态添加作业这个概念每个人理解不尽相同. elastic-job-lite为jar包,由开发或运维人员负责启动.启动时自动向注册中心注册作业信息并进行分布式协调,因此并不需要手工在注册中心填写作业信息. 但注册中心与作业部署机无从属关系,注册中心并不能控制将单点的作业分发至其他作业机,也无法将远程服务器未启动的作业启动.elastic-job-lite并不会

  • Java Swing实现窗体添加背景图片的2种方法详解

    本文实例讲述了Java Swing实现窗体添加背景图片的2种方法.分享给大家供大家参考,具体如下: 在美化程序时,常常需要在窗体上添加背景图片.通过搜索和测试,发现了2种有效方式.下面分别介绍. 1. 利用JLabel加载图片 利用JLabel自带的setIcon(Icon icon)加载icon,并设置JLabel对象的位置和大小使其完全覆盖窗体.这是一个很取巧的办法,代码非常简单,如下所示. JLabel lbBg = new JLabel(imageIcon); lbBg.setBound

  • Java实现简单双色球摇奖功能过程解析

    这篇文章主要介绍了Java实现简单双色球摇奖功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 双色球:从1-33号球中选取6个红球,且红球不重复 从1-16号球中选取一个篮球 话不多说 上代码~~~ package Javaee; import java.util.Arrays; import java.util.Random; public class DoubleChromosphere { public static void

  • java实现上传文件类型检测过程解析

    这篇文章主要介绍了java实现上传文件类型检测过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在进行文件上传时,特别是向普通用户开放文件上传功能时,需要对上传文件的格式进行控制,以防止黑客将病毒脚本上传.单纯的将文件名的类型进行截取的方式非常容易遭到破解,上传者只需要将病毒改换文件名便可以完成上传. 可以读取文件的十六进制的文件头,来判断文件真正的格式. 读取文件的二进制数据并将其转换为十六进制时,同类型文件的文件头数据是相同的,即使改

  • 使用java NIO及高速缓冲区写入文件过程解析

    这篇文章主要介绍了使用java NIO及高速缓冲区写入文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 byte[] bytes = Files.readAllBytes(Paths.get("E:\\pdf\\aaa\\html\\text.txt").normalize()); String text = IOUtils.toString(bytes); String xml = text.substring(

  • java根据富文本生成pdf文件过程解析

    这篇文章主要介绍了java根据富文本生成pdf文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 public class PdfUtil { /* * 生成pdf工具类 * wmy 12:40 2019/8/9 * @Param [guideBook, pdfPath] * @return java.lang.Boolean **/ public static Boolean htmlToPdf(GuideBook guideBook

  • Java静态和非静态成员变量初始化过程解析

    这篇文章主要介绍了Java静态和非静态成员变量初始化过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java中非静态成员变量.静态成员变量的初始化时机. 非静态变量 我们在这里分析三种结构,着重分析这三种结构的初始化顺序: 成员变量初始化语句: 成员变量初始化块: 构造函数: 示例一: public class MyTest { private String name = "wei.hu"; public MyTest(Str

  • java使用elasticsearch分组进行聚合查询过程解析

    这篇文章主要介绍了java使用elasticsearch分组进行聚合查询过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java连接elasticsearch 进行聚合查询进行相应操作 一:对单个字段进行分组求和 1.表结构图片: 根据任务id分组,分别统计出每个任务id下有多少个文字标题 1.SQL:select id, count(*) as sum from task group by taskid; java ES连接工具类 p

  • Java 在PDF中添加骑缝章示例解析

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java (免费版) 工具获取及jar文件导入: 方式1:通过官网下载jar包,并解压,手动导入lib文件夹下的Spire.Pdf.jar文件. 方式2:通过创建Maven程序,在pom.xml中配置maven仓库路径并指定Free Spire.PDF for Java 的依赖,配置完成后,在IDEA中,点击

随机推荐