都是笔记,注释也有可能写的是个错的,目的是抽奖系统
代码实时更新
代码
class Student extends Person{
public Student(String no,String name) {
super(no,name,Person.TYPE_STUDENT);
// TODO Auto-generated constructor stub
}
@Override
public String getTiTle() {
// TODO Auto-generated method stub
String title="学号"+no2+"姓名:"+name2;
return null;
}
//构造方法
}
//学生信息
class Teacher extends Person {
public Teacher(String no2,String name2) {
super(no2,name2,Person.TYPE_TEACHER);
// TODO Auto-generated constructor stub
}
@Override
public String getTiTle() {
// TODO Auto-generated method stub
String title="工号"+no2+"姓名:"+name2;
return null;
}
//构造方法
}
//老师信息
class DefaultPerson extends Person{
public DefaultPerson() {
super("", "",Person.TYPE_DEFAULT);
// TODO Auto-generated constructor stub
}
@Override
public String getTiTle() {
// TODO Auto-generated method stub
return "湖北科技职业学院";
}
//构造方法
}
//派生类
class PersonFactory{
public static Person getPerson(int type,String no2,String name2){
Person person=null;
if(no2==null||no2.isEmpty()||name2==null||name2.isEmpty()){
person=null;
}else{
if(type==Person.TYPE_STUDENT){
person=new Student(no2,name2);
}else if(type==Person.TYPE_TEACHER){
person=new Teacher(no2,name2);
}
}
if(person==null){
person=new DefaultPerson();
}
return person;
}
}
//判断以及工厂化创建实例对象
abstract class Person {
protected String no2;
protected String name2;
protected int type;
public static final int TYPE_DEFAULT=0;
public static final int TYPE_STUDENT=1;
public static final int TYPE_TEACHER=2;
//创建成员变量
public Person(String no2, String name2, int typeStudent) {
// TODO Auto-generated constructor stub
}
public String getNo2() {
return no2;
}
public void setNo(String no2) {
this.no2 = no2;
}
public String getName2() {
return name2;
}
public void setName(String name2) {
this.name2 = name2;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
//封装
public abstract String getTiTle();
}
//Person父类
public class main extends JFrame {
private ButtonGroup group=new ButtonGroup();
private JRadioButton rbStu=new JRadioButton("学生");
private JRadioButton rbTracher=new JRadioButton("教师");
private JButton btnStart=new JButton("开始抽奖");
private JButton btnReset=new JButton("重置抽奖结果");
private JLabel picLabel=new JLabel("图片",JLabel.CENTER);
private JLabel titleLabel=new JLabel("湖北科技职业学院",JLabel.CENTER);
//创建组件
public main(){
this.setTitle("随机抽奖系统");
this.setBounds(650, 200, 450, 600);
this.setResizable(false);
BackgroundPanel bp=new BackgroundPanel(Toolkit.getDefaultToolkit().
getImage(main.class.getResource("/imgs/main.png"))); //获取图片 反射机制
this.setContentPane(bp);
btnStart.setBounds(40, 20, 120, 40);
btnReset.setBounds(180, 20, 120, 40);
bp.add(btnStart);bp.add(btnReset);
group.add(rbStu);group.add(rbTracher);
rbStu.setBounds(320, 10, 100, 20);
rbTracher.setBounds(320, 35, 100, 20);
bp.add(rbStu);bp.add(rbTracher);
picLabel.setBounds(90, 85, 250, 300);
titleLabel.setBounds(60, 380, 300, 50);
Font font=new Font("隶书",Font.BOLD,24);
titleLabel.setFont(font);
bp.add(titleLabel);bp.add(picLabel);
}
//构造方法
public static void main(String[] args) {
// TODO Auto-generated method stub
main frame=new main();
frame.setVisible(true);
}
}
//主方法
实现结果

界面代码显示背景图片
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
public class BackgroundPanel extends JPanel{
Image image;
public BackgroundPanel(Image image){
super();
this.setOpaque(false); //是否透明
this.setLayout(null); //空布局setBounds()
this.image=image;
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
if(image!=null){
int width=this.getWidth();
int height=this.getHeight();
g.drawImage(image, 0, 0, width, height, this);
}
super.paintComponent(g);
}
}
注意:目前已经上传
Github
和Gitee
,代码会在仓库上面持续更新GitHub地址:https://github.com/ziln-cn/chou-yu
Gitee地址:https://gitee.com/ziln_cn/chou-yu
素材下载地址:https://cdn.yvu.cc/2023/05/20230529031943283.zip
项目导出导入教程:https://yvu.cc/archives/1001.html
空空如也!