zoukankan      html  css  js  c++  java
  • JavaJFrame窗口实现新课程添加

      任务要求:(1)新课程信息必须唯一,如有重复,提示课程名称重复,重新录入;(2)要求判断任课教师为5位教师中的一位(此处不写明教师名称);(3)要求上课地点开头为”一教,二教,三教,基教“四个地点中的一个;(4)将信息保存入库,此处老师要求将信息存入txt文档即可

            代码如下:

      1 import java.awt.Font;
      2 import java.awt.event.*;
      3 import java.io.BufferedWriter;
      4 import java.io.BufferedReader;
      5 import java.io.File;
      6 import java.io.FileReader;
      7 import java.io.FileWriter;
      8 import javax.swing.*;
      9 
     10 class screen extends JFrame{
     11         private JFrame js = new JFrame("提示");
     12         private JPanel jsp = new JPanel();
     13         private JLabel error1l = new JLabel("课程名称重复,请重新录入");
     14         private JLabel error2l = new JLabel("教师信息出错");
     15         private JLabel error3l = new JLabel("上课地点错误");
     16         private JLabel finishl = new JLabel("操作成功");
     17         
     18         public screen() {               //生成窗体
     19             js.setSize(400, 150);
     20             js.setLocationRelativeTo(null);
     21             js.add(jsp);
     22             js.setDefaultCloseOperation(2);
     23             js.setVisible(true);
     24         }
     25         
     26         public void err1() {          //提示错误1:课程名称错误
     27             error1l.setFont(new Font("Dialog",1,20));
     28             jsp.add(error1l);
     29         }
     30         
     31         public void err2() {         //提示错误2:教师信息错误
     32             error2l.setFont(new Font("Dialog",1,20));
     33             jsp.add(error2l);
     34         }
     35         
     36         public void err3() {        //提示错误3:上课地点错误
     37             error3l.setFont(new Font("Dialog",1,20));
     38             jsp.add(error3l);
     39         }
     40         public void fin() {         //提示成功 
     41             finishl.setFont(new Font("Dialog",1,20));
     42             jsp.add(finishl);
     43         }
     44         
     45 }
     46 public class NewClassIn extends JFrame{
     47     private JFrame jf = new JFrame("LOGIN");
     48     private JPanel jp = new JPanel();
     49     private JLabel classL = new JLabel("课程名称:");
     50     private static JTextField classT = new JTextField();
     51     private JLabel teacherL = new JLabel("任课教师:");
     52     private static JTextField teacherT = new JTextField();
     53     private JLabel locationL = new JLabel("上课地点:");
     54     private static JTextField locationT = new JTextField();
     55     private JButton loginB = new JButton("保存");
     56     
     57     File file = new File("manage.txt");    //存入所有信息的文档
     58     File file2 = new File("class.txt");    //存入课程信息的文档,用于判定课程是否重复
     59     String jud1[] = {"王建民","刘立嘉","刘丹","王辉","杨子光"};
     60     String jud2[] = {"一教","二教","三教","基教"};
     61     
     62     public NewClassIn() {
     63         jf.setSize(450, 300);
     64         jf.setLocationRelativeTo(null);
     65         jf.add(jp);
     66         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     67         Components(jp);
     68         jf.setVisible(true);
     69         loginB.addActionListener(new ActionListener() {    //监听事件
     70             public void actionPerformed(ActionEvent c) {
     71                 String s1 = classT.getText();
     72                 String s2 = teacherT.getText();
     73                 String s3 = locationT.getText();
     74                 int temp = 1;       //配合if语句进行检查操作。
     75                 if(temp == 1)       //检查课程名称
     76                 {
     77                     try {
     78                         FileReader fr = new FileReader(file2);
     79                         BufferedReader bufr = new BufferedReader(fr);
     80                         String s0 = null;
     81                         while((s0 = bufr.readLine())!=null) {
     82                             if(s1.equals(s0))
     83                             {
     84                                 screen k1 = new screen();
     85                                 k1.err1();
     86                                 temp--;
     87                                 break;
     88                             }
     89                         }
     90                         bufr.close();
     91                         fr.close();
     92                     }catch(Exception e) {
     93                         e.printStackTrace();
     94                     }
     95                     temp++;
     96                 }
     97                 if(temp == 2)        // 检查教师信息
     98                 {
     99                     int temp2 = 0;
    100                     for(int i = 0;i < jud1.length;i++)
    101                     {
    102                         if(s2.equals(jud1[i])) 
    103                         {
    104                             temp2 = 1;
    105                             break;
    106                         }
    107                     }
    108                     if(temp2 == 0)
    109                     {
    110                         temp--;
    111                         screen k2 = new screen();
    112                         k2.err2();
    113                     }
    114                     else
    115                     {
    116                         temp++;
    117                     }
    118                 }
    119                 if(temp == 3)         //检查上课地点
    120                 {
    121                     int temp3 = 0;
    122                     String subs3 = s3.substring(0, 2);
    123                     for(int i = 0; i < jud2.length; i++)
    124                     {
    125                         if(subs3.equals(jud2[i]))
    126                         {
    127                             temp3 = 1;
    128                             break;
    129                         }
    130                     }
    131                     if(temp3 == 0)
    132                     {
    133                         temp--;
    134                         screen k3 = new screen();
    135                         k3.err3();
    136                     }
    137                     else
    138                     {
    139                         temp++;
    140                     }
    141                 }
    142                 if(temp == 4)           //确认无误,存入文档
    143                 {
    144                     try {
    145                         FileWriter out = new FileWriter(file,true);
    146                         FileWriter out2 = new FileWriter(file2,true);
    147                         BufferedWriter bufw = new BufferedWriter(out);
    148                         BufferedWriter bufw2 = new BufferedWriter(out2);
    149                         String str1 = classT.getText();
    150                         String str2 = teacherT.getText();
    151                         String str3 = locationT.getText();
    152                         bufw.write(str1);
    153                         bufw.newLine();
    154                         bufw2.write(str1);
    155                         bufw2.newLine();
    156                         bufw.write(str2);
    157                         bufw.newLine();
    158                         bufw.write(str3);
    159                         bufw.newLine();
    160                         bufw.close();
    161                         bufw2.close();
    162                         out.close();
    163                         out2.close();
    164                     }catch(Exception e) {
    165                         e.printStackTrace();
    166                     }
    167                     screen k4 = new screen();     //弹出操作成功提示框
    168                     k4.fin();
    169                 }
    170             }
    171         });
    172     }
    173     
    174     private void Components(JPanel p) {            //向窗体添加标签
    175         p.setLayout(null);
    176         classL.setBounds(60, 30, 100, 25);
    177         classL.setFont(new Font("Dialog",1,20));
    178         p.add(classL);
    179         classT.setBounds(160, 30, 165, 25);
    180         p.add(classT);
    181         teacherL.setBounds(60, 60, 100, 25);
    182         teacherL.setFont(new Font("Dialog",1,20));
    183         p.add(teacherL);
    184         teacherT.setBounds(160, 60, 165, 25);
    185         p.add(teacherT);
    186         locationL.setBounds(60, 90, 100, 25);
    187         locationL.setFont(new Font("Dialog",1,20));
    188         p.add(locationL);
    189         locationT.setBounds(160, 90, 165, 25);
    190         p.add(locationT);
    191         loginB.setBounds(150, 150, 80, 25);
    192         p.add(loginB);
    193     }
    194     public static void main(String[] args) {         //主函数,执行操作
    195         new NewClassIn();
    196     }
    197 }

    运行结果显示:

     

     

     

     

       因未知原因,原JFrame窗口中的字体大小与主窗体(LOGIN)中按钮的“保存”字体一样大小,因此使用setFont调整了字体大小。完成该任务核心在于窗体构建,信息录入以及核对信息。抓取输入文本框的信息运用getText()函数。核对时,教师信息和上课地点要求有明确规划,直接用字符串数组存入,届时遍历数组比较即可。而课程信息存储数量未知,因此除了用于存储全部信息的“manage.txt”文件外,另外设置了单独存储课程名称信息的“class.txt”文件,在核对课程名称信息时,只需读取该文件并进行比较即可。

       另外,为了方便文件的读取操作,这里使用的是BufferedWriter和BufferedReader,目的是将信息单行录入,读取时只要单行读取即可。

      最后就是窗体构建,着重使用JFrame,JPanel,JLabel和JButton,其窗体大小和组件大小数值可自行调试,代码中的数值是多次调试之后确定的个人比较满意的数值。

  • 相关阅读:
    java中的abstract、接口、final和Object
    java中的多态性
    java中的继承和覆盖
    面向对象编程
    java中的this
    java中的类与对象(2)
    java中的类与对象(1)
    Java中的运算及优先级
    Selenium Python
    Python学习①. 基础语法
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/11701318.html
Copyright © 2011-2022 走看看