以前高中的时候,记得听别人班的同学说,有一位物理老师为了解决上课提问没人举手回答问题的尴尬情况,当时自己弄出了一个随机点学号的程序来点同学回答问题,当时感觉很新奇哈哈哈,然后今天没啥事,我也复刻了一下当年的这段记忆。

图形界面用的还是JFrame。

然后用用两个JTextField来接收随机数的范围,按下抽奖按钮就可以随机抽同学的学号了。

下面是源代码:

mainUI类,主要功能实现:

package UI;import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import function.function;public class mainUI extends JFrame implements ActionListener{//成员变量JTextField min=new JTextField();JTextField max=new JTextField();JButton start=new JButton();int luck=0;JMenuItem aboutme=new JMenuItem("关于作者");//主界面的构造方法public mainUI(){jiemian();function();//将界面显示出来this.setVisible(true);}private void jiemian() {this.setSize(400,450);this.setAlwaysOnTop(true);this.setTitle("学生上课回答抽奖器");//让界面一直在所有窗口的上方this.setAlwaysOnTop(true);//选择关闭方式this.setDefaultCloseOperation(3);//让界面出现在中央this.setLocationRelativeTo(null);setLayout(null);}private void function(){//功能栏JMenuBar jb=new JMenuBar();JMenu about=new JMenu("关于");aboutme.addActionListener(this);jb.add(about);about.add(aboutme);this.setJMenuBar(jb);//输入框min.setBounds(150,170,150,30);this.getContentPane().add(min);max.setBounds(150,265,150,30);this.getContentPane().add(max);start.setText("开抽!");start.setBounds(150,320,80,40);this.getContentPane().add(start);start.addActionListener(this);//显示背景JLabel bg=new JLabel(new ImageIcon("image/bg.jpg"));bg.setBounds(0,0,400,450);this.getContentPane().add(bg);}@Overridepublic void actionPerformed(ActionEvent e) {Object o=e.getSource();if (o==start){luck=function.Randomid(min.getText(),max.getText());System.out.println(luck);//按下按钮后显示抽到的同学JDialog Luck =new JDialog();Luck.setTitle("恭喜你啊!");JLabel j2=new JLabel();j2.setText("恭喜"+luck+"号同学,你被抽中了!");j2.setBounds(0,0,100,100);Luck.getContentPane().add(j2);Luck.setSize(200,100);Luck.setAlwaysOnTop(true);Luck.setLocationRelativeTo(null);//设置不关闭弹窗就无法进行下一步操作Luck.setModal(true);Luck.setVisible(true);}else if (o==aboutme){
//设置关于作者这个功能的弹窗JDialog jd=new JDialog();JLabel j2=new JLabel(new ImageIcon("image/me.jpg"));j2.setBounds(0,0,258,258);jd.getContentPane().add(j2);jd.setSize(344,344);jd.setAlwaysOnTop(true);jd.setLocationRelativeTo(null);//设置不关闭弹窗就无法进行下一步操作jd.setModal(true);jd.setVisible(true);}}
}

然后抽奖功能中,从JTextField中有一个getText()的方法,但是这个方法的返回类型是String,又因为我想的随机数是要随机出 int 整型的,怎么把这个String类型的数字转成相应的整型,我后面想了一小会,写了这个方法。

package function;import java.util.Random;public class function {//这个为抽奖机制的工具类private function(){};public static int Randomid(String min,String max){Random r=new Random();//将获得的字符串变成整型int Max=change(max);int Min=change(min);int n=r.nextInt(Max-Min+1)+Min;return n;}public static int change(String s) {//我写了这个方法能将int类型范围内的所有String表示的数字字符串转变为相应的int类型char[] arr = s.toCharArray();int n = 0;if (arr.length == 1) {n = (int) arr[0] - 48;return n;}else {double a=0;for (int i = 0; i < arr.length; i++) {int b=(int)arr[i]-48;a=a+b*Math.pow(10, arr.length-(i+1));}int c=(int)a;return c;}}
}

这样一来,只要是在 int 整型范围内的,例如:"12345" (string)转成  12345(int),我都可以转换了,我感觉还是挺实用的,下面这一段:

public static int change(String s) {char[] arr = s.toCharArray();int n = 0;if (arr.length == 1) {n = (int) arr[0] - 48;return n;}else {double a=0;for (int i = 0; i < arr.length; i++) {int b=(int)arr[i]-48;a=a+b*Math.pow(10, arr.length-(i+1));}int c=(int)a;return c;}}

最后就是测试类了:

import UI.mainUI;
import function.function;import java.util.Scanner;public class test {public static void main(String[] args) {new mainUI();}
}

运行的效果是这样的:

输入一下学号范围:

浅抽一下

再抽一下

感觉唯一有点用的,就是将String的数字转成int的那一段是有点用的,其他就当图一乐哈哈哈嘿嘿。

【java】随机抽上课回答问题的小玩意相关推荐

  1. java随机抽题系统_在用java做一个在线考试系统,随机抽题遇到了问题,我写了一个随机抽题的方法,不知道在asp按钮中怎么用...

    你们看看方法对不对?publicListsuiji(intshitiId,inttimuId,inttimunanyidu,StringtimuLeixing){Stringsql="fro ...

  2. java随机抽题系统_为什么要使用考试系统的随机组卷功能?

    一个考试系统的组卷灵活性,不仅仅在于其题型丰富.设置参数齐全,也在于抽题组卷方式.除了平时我们严肃性的固定题目出卷方式,我们往往也考虑到需要随机组卷的功能. 为什么用户会需要随机组卷的功能呢?随机组卷 ...

  3. java随机抽题系统_什么样的考试场景需要使用随机试卷模式?

    我们在进行组卷时,比较常用的组卷模式有随机试卷.手工固定试卷.抽题组卷等. 今天我们讲解如何使用优考试在线考试系统设计随机试卷,随机试卷适用于什么样的考试场景? 一. 试题多样化 当试题较多,但试卷总 ...

  4. java随机抽题系统_2020税务师机考模拟系统全新上线,智能题库 随机组卷,快来试手...

    2020年税务师考试实行闭卷机考,提升机考答题能力很有必要.提前练习.熟悉机考系统,可以加快答题速度,多出来的时间,可以去思考题目或者多检查一遍,都好过把时间浪费在打字慢.计算器不习惯.公式输入不熟练 ...

  5. java随机抽题系统_JAVA程序设计题六:随机抽奖系统

    给一同学写的实践周作业,发现好久没有写博客了,于是就分享出来,造福学弟学妹. 课题描述 基于JAVA GUI编写一个简单的随机抽奖程序,具体实现功能如下: 1. 创建一个文本文件,其中存放若干条用户信 ...

  6. 推荐给大家,java随机抽题系统

    前言 Spring无论在Java生态系统,还是在就业市场,是绝对的王者.大厂面试出镜率之高,投产规模之广,无出其右.随着技术的发展,Spring 从往日的 IoC 框架,已发展成 Cloud Nati ...

  7. 剑指Offer题目:从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的。 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王可以看成任意的 数字。

    剑指Offer面试题 44:扑克牌的顺子 从扑克牌中随机抽 5 张牌,判断是不是顺子,即这 5 张牌是不是连续的. 2-10 为数字本身,A 为 1,J 为 11,Q 为 12,K 为 13,而大小王 ...

  8. java 随机点名器和随机摇号器

    java实训20210810 java 随机点名器 和 随机摇号器 随机点名器,即在全班同学中随机的打印出一名同学名字. 要做的随机点名器,它具备以下3个内容:  存储所有同学姓名  总览全班同学 ...

  9. Python实战案例,tkinter+random模块,实现课堂随机抽选提问并语音播报学生姓名

    前言 今天给大家介绍Python实现课堂随机抽选提问并语音播报学生姓名实战案例,废话不多说直接开整~ 开发工具 Python版本: 3.8 相关模块: tkinter模块 time模块 random模 ...

最新文章

  1. Go 语言实现字符串匹配算法 -- BF(Brute Force) 和 RK(Rabin Karp)
  2. 15篇论文全面概览BERT压缩方法
  3. 聊一聊:你觉得这个新Logo值200万吗?
  4. Spark Streaming之:Flume监控目录下文件内容变化,然后Spark Streaming实时监听Flume,然后从其上拉取数据,并计算出结果
  5. Oracle Pipelined Table Functions简介
  6. python送心小人_使用Python画出小人发射爱心的代码
  7. 表格字体缩小 php_如何快速找出两个Excel表格不同的地方?
  8. ElasticSearch Java SpringBoot根据时间范围分组求和
  9. 一个html页面上显示dopost,Java遇见HTML-servlet(一)
  10. 基于LSTM的中文文本多分类
  11. JavaScript开发人员需了解的工具内容
  12. 虚拟机中运行windows内核
  13. RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
  14. 西南科技大学OJ题 折半查找的实现1010
  15. idea maven tomcat 热部署
  16. uni-app创建并运行微信小程序项目
  17. 詹姆斯——永远的皇帝
  18. 2017总结与2018展望
  19. 公众号资源方法,数据集,绘图学习持续更新记录~~~
  20. XDM-跨文档消息传送

热门文章

  1. H3C交换机配置链路聚合二层三层
  2. 睢阳区中小学计算机提升培训,睢阳区中小学幼儿园教师信息技术应用能力.doc...
  3. 武汉大学 本校考研 经验贴
  4. ubuntu 下安装qq2012
  5. CH07 数据规整化
  6. 基于Java+Swing实现推箱子游戏
  7. c语言课程设计报告书万年历,计算机c语言课程设计万年历报告书
  8. 计算机硬件最小储存单位,构成储存器的最小单位是什么
  9. [N32G457] 基于RT-Thread和N32G457的简易便捷式可调电压源
  10. linux getevent命令,实用Linux命令集锦(一)