JAVA——Swing实现窗口添加课程信息

基本思路:

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

  1 package Test;
  2
  3 import javax.swing.JButton;
  4 import java.io.*;
  5 import javax.swing.JFrame;
  6 import javax.swing.JLabel;
  7 import javax.swing.JPanel;
  8 import javax.swing.JTextField;
  9 import java.awt.*;
 10 import java.awt.event.ActionEvent;
 11 import java.awt.event.ActionListener;
 12
 13 public class SetClass {
 14     String str1="添加课程失败,请核对信息后添加",
 15             str2="添加成功";
 16     JFrame jf=new JFrame("新课程添加");
 17     JPanel panel=new JPanel();
 18     JLabel addclass=new JLabel("课程名称");
 19     JTextField addclasstext=new JTextField();
 20     JLabel teacher=new JLabel("任课老师");
 21     JTextField teachertext=new JTextField();
 22     JLabel placeclass=new JLabel("上课地点");
 23     JTextField placeclasstext=new JTextField();
 24     JButton register=new JButton("添加");
 25
 26     public boolean judgeText(String filepath,String s)       //判断信息的合法性
 27     {
 28         String str="";
 29         boolean flag=false;
 30         File file=new File(filepath);
 31         try {
 32             FileReader reader=new FileReader(file);
 33             BufferedReader br=new BufferedReader(reader);
 34             while((str=br.readLine())!=null)
 35             {
 36                 if(str.equals(s))
 37                     flag=true;
 38             }
 39             br.close();
 40             reader.close();
 41         } catch (FileNotFoundException e) {
 42             // TODO Auto-generated catch block
 43             e.printStackTrace();
 44         } catch (IOException e) {
 45             // TODO Auto-generated catch block
 46             e.printStackTrace();
 47         }
 48
 49         return flag;
 50
 51     }
 52     public void inputFile(String filepath,JTextField jt)   //将信息录入到文件中
 53     {
 54         File file=new File(filepath);
 55         try {
 56             FileWriter reader = new FileWriter(file,true);
 57             BufferedWriter bw=new BufferedWriter(reader);
 58             bw.newLine();
 59             bw.write(jt.getText());
 60             bw.close();
 61         } catch (IOException e) {
 62             // TODO Auto-generated catch block
 63             e.printStackTrace();
 64         }
 65     }
 66     public void setPanel(JPanel panel)        //设置面板
 67     {
 68         panel.setLayout(null);
 69         addclass.setBounds(30, 30, 80, 25);
 70         teacher.setBounds(30, 60, 80, 25);
 71         placeclass.setBounds(30, 90, 80, 25);
 72         register.setBounds(110, 120, 80, 25);
 73         register.addActionListener(new ActionListener() {    //增加事件监听器
 74
 75             @Override
 76             public void actionPerformed(ActionEvent arg0) {
 77                 // TODO Auto-generated method stub
 78                 if(!judgeText("data", addclasstext.getText())&&judgeText("data", teachertext.getText())&&judgeText("data", placeclasstext.getText().substring(0, 2)))
 79                 {
 80                     inputFile("data",addclasstext);
 81                     inputFile("Xclass",addclasstext);
 82                     inputFile("Xclass",teachertext);
 83                     inputFile("Xclass",placeclasstext);
 84                     new MyJf(str2);
 85                 }
 86                 else
 87                     new MyJf(str1);
 88             }
 89         });
 90         addclasstext.setBounds(105, 30, 165, 25);
 91         teachertext.setBounds(105, 60, 165, 25);
 92         placeclasstext.setBounds(105, 90, 165, 25);
 93         panel.add(addclass);
 94         panel.add(addclasstext);
 95         panel.add(teacher);
 96         panel.add(teachertext);
 97         panel.add(register);
 98         panel.add(placeclass);
 99         panel.add(placeclasstext);
100     }
101
102     SetClass() {                              //为JFrame窗口设置窗口参数
103         // TODO Auto-generated constructor stub
104         jf.setSize(340, 250);
105         jf.setLocationRelativeTo(null);
106         jf.add(panel);
107         setPanel(panel);
108         jf.setVisible(true);
109         jf.setDefaultCloseOperation(3);
110     }
111
112     public static void main(String[] args) {
113         // TODO Auto-generated method stub
114         new SetClass();
115     }
116
117 }
118 class MyJf                       //创建弹出窗口
119 {
120     JFrame jf1=new JFrame("提示信息");
121     JPanel jp1=new JPanel();
122     JLabel jl=new JLabel();
123     MyJf(String str)
124     {
125         jl.setText(str);
126         jf1.setSize(300, 80);
127         jf1.setVisible(true);
128         jf1.add(jp1);
129         jf1.setDefaultCloseOperation(2);
130         jf1.setLocationRelativeTo(null);
131         jp1.add(jl);
132
133     }
134 }

原文地址:https://www.cnblogs.com/haheihei/p/11700856.html

时间: 2024-11-05 19:01:12

JAVA——Swing实现窗口添加课程信息的相关文章

14.2-全栈Java笔记: Java Swing创建窗口,原来这么简单!!!

上节我们聊到GUI(Graphical User Interface)的概念,并学习GUI编程中主要需掌握两个包,分别是:AWT和Swing,本节我们会通过Swing程序中常用的类和控件来实现第一个窗口.  javax.swing.JFrame JFrame在GUI中为一个窗口对象,继承于Frame.JFrame控件用于在Swing程序中创建窗体.如表1所示,为JFrame常见的构造方法. 注意: Java语言规定在GUI编程中任何窗口实例化出来时默认为不可见(即隐藏)状态,所以当我们使用构造方

java 在数据库中添加新信息

package lianxi1; import java.sql.*; import java.util.*; public class lianxi1 { public static void main(String[] args) { //定义Connection Connection conn = null; try { //链接数据库 Class.forName("oracle.jdbc.driver.OracleDriver"); String strUrl ="j

课程信息管理系统

1.环境的配置:eclipse+tomcat+MySQL+Navicat Premium 2.在Navicat Premium中新建db_book数据库,其中新建tb_books数据表.包含四个字段:id.name.teacher.workplace,将id设为自动递增,否则后面递增会出错. 3.新建web项目,点击两次next,勾选自动生成web.xml. 生成的项目结构如下: 将连接mysql的驱动jar包(mysql-connector-java-8.0.13-bin.jar)复制到WEB

添加学生信息(Javaweb)

add.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%> <% request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8 response.setChar

Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现

Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现 1. 建立悬浮窗口引用代码 1 1.1. 定义悬浮窗口,设置this主窗口引用,是为了在悬浮窗口中双击可缩小还还原主窗口.以及悬浮窗口右键菜单"显示主界面"中需要还原主窗 1 1.2. //设置主窗口关闭时,先关闭悬浮窗口.and系统托盘 1 1.3. 注入系统托盘图标,退出的时候儿也退出系统托盘 2 2. 悬浮窗口结构and重大的点 2 2.1. 要去掉标题栏: 2 2.2. Opa

Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label用来分别显示进度和进度信息,而Dialog的宽度和高度正是闪屏图片的宽度和高度.然后将闪屏图片贴到Dialog中作为整个窗体的背景,Dialog显示时覆盖闪屏所处的区域.由于Dialog显示时闪屏并没有消失,且Dialog的X.Y及宽高都与闪屏图片一致,因此实际切换时,非常流畅,用户感觉不到有异常,

Java实验--基于Swing的简单的歌曲信息管理系统(四)

原创不易,转载请注明出处. 上一篇<Java实验--基于Swing的简单的歌曲信息管理系统(三) >中,我们绘制了登录.注册和管理员主界面,本片主要讲解歌曲管理界面.第一次涉及到对表格的操作,参见的教材上的代码,具体代码如下: package test.swing; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.

java swing 窗口界面关闭事件响应

在swing的窗口里面,即jframe里面,进行关闭窗口动作,如果事先不在代码中设置好,则默认是把窗口设成setVisable(false),程序还是依然运行着,继续占用内存,所以如果不小心,越调试则会发现内存占用率越高,机子越来越卡. 一般的,如果没有特殊要求,只需要这样让该窗口对象调用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);则当我们关闭窗口时,程序结束运行  . 但是,如果有特殊要求,如关闭之前要调用一些方法,则可以这样:让该窗口对象调用

Java Swing 之查看图标信息

/** *查看图标的信息 *@author gao */ package com.gao; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; public class ImageInfoDemo