学生成绩判定-java swing初级编程

有个专科学生让我帮他指导一下作业,题目是专做一个简单的界面,输入成绩进行判定。代码文后可以直接下载。(90-100分优秀,80-90分良好,70-80分中等,60-70分及格,60分以下为不及格)如图下所示:

虽然我做程序有几年了,但是我还真的没有用过java swing写过项目。可是我有不太会拒绝别人,于是就答应帮忙做一下。这个东西我搜资料+实现,用了不到40分钟。同样是没有做过swing的,我给大家分享一些经验。

这个作业的核心是写出个界面,点击按钮获取输入的成绩,进行逻辑处理,然后显示判断结果。逻辑判断这块对我来说没有问题,要不白做这么多年程序了,最难的就是写出个界面。那我就想到了学程序必做的经典demo登录注册。看了网上的代码,我知道了JFrame是窗体,JPanel是一种轻量级容器,JLabel是标签,JTextField是输入框,JButton是按钮,ActionListener是点击事件,GridLayout是网格布局。于是我就创建了四行一列的网格布局,把这些组件摆放好,接着就把点击后的逻辑判断加上,最后显示结果。

运行结果如下图:


解决问题的关键就是你知道这个程序哪里你能解决,哪里你解决不了,对症下药。对于初学者,只不过你不知道你卡在哪里了,所以无从下手。其实有些问题并不是很难,做程序的要给自己信心。


直接上代码,里面注释很全的,适合初学者。

百度盘下载链接: https://pan.baidu.com/s/1nSLrqmYpvvC5WRSjecMJKw 密码: z2sp

package com.queryscore;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Score {
    
    public static JLabel jlb22 ;//显示结果的
    
    public static void main(String[] args) {
        
        JFrame frame = new JFrame();
        frame.setSize(300, 250);//窗体大小  
        frame.setTitle("学生成绩判定");//窗体标签  
        frame.setLayout(new GridLayout(4, 1));//网格式布局  
        frame.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)
       
        JPanel panel1 = new JPanel();//
        JPanel panel2 = new JPanel();//
        JPanel panel3 = new JPanel();//
        JPanel panel4 = new JPanel();//
        
        //第一行
        JLabel label1 = new JLabel("学生成绩判定");
        label1.setFont(new Font("黑体", Font.BOLD,   26));   
        panel1.add(label1);
        
        //第二行
        JLabel jlb1 = new JLabel("请输入学生成绩:");
        jlb1.setFont(new Font("宋体", Font.BOLD,   20));  
        final JTextField jtf1=new JTextField(4); //创建文本框  
        jtf1.setFont(new Font("宋体", Font.BOLD,   20));  
        panel2.add(jlb1);
        panel2.add(jtf1);
        
        //第三行
        JLabel jlb2 = new JLabel("学生成绩等级:");
        jlb2.setFont(new Font("宋体", Font.BOLD,   20));  
        jlb22 = new JLabel("待定");
        jlb22.setFont(new Font("宋体", Font.BOLD,   22));
        jlb22.setForeground(Color.red);
        panel3.add(jlb2);
        panel3.add(jlb22);
        
        //第四行创建按钮  
        JButton jb1 = new JButton("查询");  
        JButton jb2 = new JButton("取消");
        jb1.setFont(new Font("宋体", Font.PLAIN,   18));
        jb2.setFont(new Font("宋体", Font.PLAIN,   18));
        jb1.setFocusPainted(false); //设置不绘制焦点
        jb2.setFocusPainted(false); //设置不绘制焦点
        panel4.add(jb1);
        panel4.add(jb2);
        
        frame.add(panel1);
        frame.add(panel2);
        frame.add(panel3);
        frame.add(panel4);
        
          
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFrame  
        frame.setVisible(true);//显示窗体  
        frame.setResizable(false);//锁定窗体    
        
        
        //查询按钮添加一个活动监听  
        jb1.addActionListener(new ActionListener() {  
              
            @Override  
            public void actionPerformed(ActionEvent e) {  
                //System.exit(0);  
                String chengji = jtf1.getText().trim();
                queryscore(chengji);
            }  
        });  
        
        
      //取消按钮添加一个活动监听  
        jb2.addActionListener(new ActionListener() {  
              
            @Override  
            public void actionPerformed(ActionEvent e) {  
                //System.exit(0);  
                
                jtf1.setText("");  
                jlb22.setText("待定");
            }  
        });
    }
    
    //判断成绩的函数
    public static void queryscore(String chengjiStr){
        
        try {
            
            double chengji = Double.valueOf(chengjiStr);
            
            if (chengji>100){
                jlb22.setText("无效成绩");
            }
            else if (90<=chengji && chengji <= 100){
                jlb22.setText("优秀");
            }
            else if (chengji >= 80 && chengji < 90){
                jlb22.setText("良好");
            }
            else if (chengji >= 70 && chengji < 80){
                jlb22.setText("中等");
            }
            else if (chengji >= 60 && chengji < 70){
                jlb22.setText("及格");
            }else {
                jlb22.setText("不及格");
            }
            
        } catch (NumberFormatException e) {
            
            jlb22.setText("无效成绩");
        }
        
    }
   
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章