1.先完成主页面MainUI(代码如下)
package com.pag_1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainUI extends JFrame implements ActionListener {
//定义组件
JButton jb1,jb2,jb3=null;
JRadioButton jrb1,jrb2=null;
JPanel jp1,jp2,jp3,jp4=null;
JTextField jtf=null;
JLabel jlb1,jlb2,jlb3=null;
JPasswordField jpf=null;
ButtonGroup bg=null;
//设定用户名和密码
final String stu_name="王小明";
final String stu_pwd="1";
final String stu_num="14140301";
final String tea_name="王老师";
final String tea_pwd="1";
final String tea_num="00001";
public static void main(String[] args) {
MainUI mUI=new MainUI();
}
public MainUI()
{
//创建组件
jb1=new JButton("登录");
jb2=new JButton("重置");
jb3=new JButton("退出");
//设置监听
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
jrb1=new JRadioButton("教师");
jrb2=new JRadioButton("学生");
bg=new ButtonGroup();
bg.add(jrb1);
bg.add(jrb2);
jrb2.setSelected(true); //初始页面默认选择权限为 学生
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jp4=new JPanel();
jlb1=new JLabel("用户名:");
jlb2=new JLabel("密 码:");
jlb3=new JLabel("权 限:");
jtf=new JTextField(10);
jpf=new JPasswordField(10);
//加入到JPanel中
jp1.add(jlb1);
jp1.add(jtf);
jp2.add(jlb2);
jp2.add(jpf);
jp3.add(jlb3); //添加标签
jp3.add(jrb1);
jp3.add(jrb2);
jp4.add(jb1); //添加按钮
jp4.add(jb2);
jp4.add(jb3);
//加入JFrame中
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.add(jp4);
this.setLayout(new GridLayout(4,1)); //选择GridLayout布局管理器
this.setTitle("学生成绩管理系统");
this.setSize(300,200);
this.setLocation(400, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置当关闭窗口时,保证JVM也退出
this.setVisible(true);
this.setResizable(true);
}
public void actionPerformed(ActionEvent e) { //事件判断
if(e.getActionCommand()=="登录")
{
//如果选中教师登录
if(jrb1.isSelected())
{
tealogin(); //连接到教师的方法 页面
}else if(jrb2.isSelected()) //学生在登录系统
{
stulogin(); //连接到学生的方法 页面
}
}else if(e.getActionCommand()=="重置")
{
clear();
}
}
//学生登录判断方法
public void stulogin()
{
if(stu_name.equals(jtf.getText())&&stu_pwd.equals(jpf.getText()))
{
JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);
dispose();
clear();
StdUI ui=new StdUI(); //创建新界面
}else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
{
JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
}else if(jtf.getText().isEmpty())
{
JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
}else if(jpf.getText().isEmpty())
{
JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
}else
{
JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);
//清空输入框
clear();
}
}
//教师登录判断方法
public void tealogin()
{
if(tea_name.equals(jtf.getText())&&tea_pwd.equals(jpf.getText()))
{
JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE);
clear();
dispose();
TerUI ui=new TerUI(); //创建一个新界面
}else if(jtf.getText().isEmpty()&&jpf.getText().isEmpty())
{
JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE);
}else if(jtf.getText().isEmpty())
{
JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE);
}else if(jpf.getText().isEmpty())
{
JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE);
}else
{
JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE);
clear(); //清空输入框
}
}
//清空文本框和密码框
public void clear()
{
jtf.setText("");
jpf.setText("");
}
}
2.完成学生界面StuUI,这个页面在MainUI界面设置了按钮连接(代码如下)
package com.pag_1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JButton;
import java.awt.color.*;
import javax.swing.JOptionPane;
import com.pag_1.MainUI;
public class StdUI extends JFrame implements ActionListener
{
//定义组件
JButton jb1=new JButton();
JButton jb2=new JButton();
JPanel jp1,jp2,jp3,jp4=null;
JLabel jlb1,jlb2,jlb3,jlb4,jlb5,jlb6=null;
public static void main(String[] args)
{
StdUI ui=new StdUI();
}
//****************************事件判断**********************
//构造函数
public StdUI() //不能申明为void!!!!!否则弹不出新界面
{
//创建组件
jb1=new JButton("课程表");
jb1.setForeground(Color.BLUE);
jb2=new JButton("成绩查询");
jb2.setForeground(Color.BLUE);
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jlb1=new JLabel("姓名:");
jlb2=new JLabel("学号:");
jlb3=new JLabel("最新公告:");
jlb3.setForeground(Color.red);
jlb4=new JLabel("我院举行学生体测通知");
jlb5=new JLabel(new MainUI().stu_name);
jlb6=new JLabel(new MainUI().stu_num);
jp1.add(jlb1);
jp1.add(jlb5);
jp1.add(jlb2);
jp1.add(jlb6);
jp2.add(jb1);
jp2.add(jb2);
jp3.add(jlb3);
jp3.add(jlb4);
this.add(jp1);
this.add(jp2);
this.add(jp3);
//设置布局管理器
this.setLayout(new GridLayout(4,3,50,50));
this.setTitle("学生成绩管理系统");
this.setSize(400,300);
this.setLocation(200, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
jb1.addActionListener(this);
jb2.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jb1){
//关闭当前界面
dispose();
new KeChengBiaoUI();
}else if(e.getSource() == jb2){
//关闭当前界面
dispose();
new ChengJiBiaoUI();
}
}
}
运行MainUI输入用户学生,会出现下面学生界面,其中界面中的 课程表和成绩查询是两个可以点击的按钮,会连接到下个页面再后面步骤。
3.完成教师界面TerUI,这个和学生页面一样,在MainUI页面有设置按钮事件,连接到MainUI页面.(代码如下)
package com.pag_1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JButton;
import com.pag_1.MainUI;
public class TerUI extends JFrame implements ActionListener
{
//定义组件
JButton jb1,jb2=null;
JPanel jp1,jp2,jp3,jp4=null;
JLabel jlb1,jlb2,jlb3,jlb4,jlb5,jlb6=null;
public static void main(String[] args) {
TerUI ui=new TerUI();
}
public TerUI()
{
//创建组件
jb1=new JButton("课程管理");
jb1.setForeground(Color.BLUE);
jb2=new JButton("学生名单");
jb2.setForeground(Color.BLUE);
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jlb1=new JLabel("姓名:");
jlb2=new JLabel("工号:");
jlb3=new JLabel("最新公告:");
jlb3.setForeground(Color.red);
jlb4=new JLabel("我院举行体测的通知");
jlb5=new JLabel(new MainUI().tea_name);
jlb6=new JLabel(new MainUI().tea_num);
jp1.add(jlb1);
jp1.add(jlb5);
jp1.add(jlb2);
jp1.add(jlb6);
jp2.add(jb1);
jp2.add(jb2);
jp3.add(jlb3);
jp3.add(jlb4);
this.add(jp1);
this.add(jp2);
this.add(jp3);
this.setLayout(new GridLayout(4,3,50,50)); //设置布局管理器
this.setTitle("学生成绩管理系统");
this.setSize(400,300);
this.setLocation(200, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
jb1.addActionListener(this);
jb2.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jb1){
dispose();
new KeChengGuanLiUI(); //创建一个新界面
}else if(e.getSource() == jb2){
dispose();
new XueShengMingDanUI(); //创建一个新界面
}
}
}
运行MainUI输入用户教师,会出现下面教师界面,其中界面中的 课程管理和学生名单是两个可以点击的按钮,会连接到下个页面再后面步骤。
4.完成学生界面的课程表界面(代码如下)
package com.pag_1;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
public class KeChengBiaoUI extends JFrame
{
public KeChengBiaoUI()
{
intiComponent();
}
private void intiComponent()
{
String[] columnNames =
{ "课节数","星期一", "星期二", "星期三", "星期四", "星期五", "星期六","星期日" };
Object[][] obj=new Object[8][8];
for (int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
switch (j)
{
case 0:
obj[0][0] = "第一节课";
obj[0][1] = "光纤通信";
obj[0][2] = "电磁场";
obj[0][3] = "物联网";
obj[0][4] = "DSP实验";
obj[0][5] = " ";
obj[0][6] = "手机维修";
obj[0][7] = " ";
break;
case 1:
obj[1][0] = "第二节课";
obj[1][1] = "光纤通信";
obj[1][2] = "电磁场";
obj[1][3] = "物联网";
obj[1][4] = "DSP实验";
obj[1][5] = " ";
obj[1][6] = "手机维修";
obj[1][7] = " ";
break;
case 2:
obj[2][0] = "第三节课";
obj[2][1] = "Android";
obj[2][2] = " ";
obj[2][3] = " ";
obj[2][4] = "DSP实验";
obj[2][5] = "手机维修";
obj[2][6] = "手机维修";
obj[2][7] = " ";
break;
case 3:
obj[3][0] = "第四节课";
obj[3][1] = "Android";
obj[3][2] = " ";
obj[3][3] = " ";
obj[3][4] = " ";
obj[3][5] = "手机维修";
obj[3][6] = "手机维修";
obj[3][7] = "光纤通信";
break;
case 4:
obj[4][0] = "第五节课";
obj[4][1] = "Android实验";
obj[4][2] = " ";
obj[4][3] = " ";
obj[4][4] = " ";
obj[4][5] = " ";
obj[4][6] = " ";
obj[4][7] = " ";
break;
case 5:
obj[5][0] = "第六节课";
obj[5][1] = "Android实验";
obj[5][2] = " ";
obj[5][3] = " ";
obj[5][4] = " ";
obj[5][5] = " ";
obj[5][6] = " ";
obj[5][7] = " ";
break;
case 6:
obj[6][0] = "第七节课";
obj[6][1] = "Android实验";
obj[6][2] = " ";
obj[6][3] = " ";
obj[6][4] = " ";
obj[6][5] = " ";
obj[6][6] = " ";
obj[6][7] = " ";
break;
case 7:
obj[7][0] = "第七节课";
obj[7][1] = "";
obj[7][2] = " ";
obj[7][3] = " ";
obj[7][4] = " ";
obj[7][5] = " ";
obj[7][6] = " ";
obj[7][7] = " ";
break;
case 8:
obj[8][0] = "第八节课";
obj[8][1] = " ";
obj[8][2] = " ";
obj[8][3] = " ";
obj[8][4] = " ";
obj[8][5] = " ";
obj[8][6] = " ";
obj[8][7] = " ";
break;
}
}
}
JTable table=new JTable(obj, columnNames);
TableColumn column=null;
int colunms = table.getColumnCount();
for(int i=0;i
5.完成学生的成绩查询界面(代码如下)
package com.pag_1;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
public class ChengJiBiaoUI extends JFrame
{
public ChengJiBiaoUI()
{
intiComponent();
}
//初始化窗体组件
private void intiComponent()
{
String[] columnNames =
{ "课程数目","课程名称", "学分", "绩点", "分数", "补考" }; //设置JTable的列名
Object[][] obj=new Object[7][7];
for (int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
switch (j)
{
case 0:
obj[0][0] = " 1";
obj[0][1] = " 光纤通信";
obj[0][2] = " 2";
obj[0][3] = " 1.5";
obj[0][4] = " 75";
obj[0][5] = " 否";
break;
case 1:
obj[1][0] = " 2";
obj[1][1] = " Android";
obj[1][2] = " 2";
obj[1][3] = " 1.8";
obj[1][4] = " 5";
obj[1][5] = " 否";
break;
case 2:
obj[2][0] = " 3";
obj[2][1] = " 物联网";
obj[2][2] = " 1.5";
obj[2][3] = " 1.2";
obj[2][4] = " 70";
obj[2][5] = " 否";
break;
case 3:
obj[3][0] = " 4";
obj[3][1] = " 电磁场";
obj[3][2] = " 2";
obj[3][3] = " 1.6";
obj[3][4] = " 78";
obj[3][5] = " 否";
break;
case 4:
obj[4][0] = " 5";
obj[4][1] = " 手机维修";
obj[4][2] = " 1.0";
obj[4][3] = " 1.0";
obj[4][4] = " 优秀";
obj[4][5] = " 否";
break;
case 5:
obj[5][0] = " 6";
obj[5][1] = " DSP";
obj[5][2] = " 1.0";
obj[5][3] = " 1.0";
obj[5][4] = " 良好";
obj[5][5] = " 否";
break;
case 6:
obj[6][0] = " 7";
obj[6][1] = " 通信原理实验";
obj[6][2] = " 1.0";
obj[6][3] = " 1.0";
obj[6][4] = " 良好";
obj[6][5] = " 否";
break;
}
}
}
JTable table=new JTable(obj, columnNames); //JTable的其中一种构造方法
TableColumn column=null; //设置JTable的列默认的宽度和高度
int colunms = table.getColumnCount();
for(int i=0;i
6.完成教师的课程管理界面(代码如下)
package com.pag_1;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
public class KeChengGuanLiUI extends JFrame
{
public KeChengGuanLiUI()
{
intiComponent();
}
private void intiComponent()
{
String[] columnNames =
{ "课节数","星期一", "星期二", "星期三", "星期四", "星期五", "星期六","星期日" };
Object[][] obj=new Object[8][8];
for (int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
switch (j)
{
case 0:
obj[0][0] = " 第一节课";
obj[0][1] = " 有课";
obj[0][2] = " ";
obj[0][3] = " ";
obj[0][4] = " 有课";
obj[0][5] = " ";
obj[0][6] = "";
obj[0][7] = " ";
break;
case 1:
obj[1][0] = " 第二节课";
obj[1][1] = " 有课";
obj[1][2] = "";
obj[1][3] = "";
obj[1][4] = " 有课";
obj[1][5] = " ";
obj[1][6] = "";
obj[1][7] = " ";
break;
case 2:
obj[2][0] = " 第三节课";
obj[2][1] = "";
obj[2][2] = " ";
obj[2][3] = " 有课";
obj[2][4] = "";
obj[2][5] = "";
obj[2][6] = "";
obj[2][7] = " ";
break;
case 3:
obj[3][0] =" 第四节课";
obj[3][1] = "";
obj[3][2] = " ";
obj[3][3] = " 有课";
obj[3][4] = " ";
obj[3][5] = "";
obj[3][6] = "";
obj[3][7] = "";
break;
case 4:
obj[4][0] =" 第五节课";
obj[4][1] = "";
obj[4][2] = " ";
obj[4][3] = " ";
obj[4][4] = " ";
obj[4][5] = " ";
obj[4][6] = " ";
obj[4][7] = " ";
break;
case 5:
obj[5][0] =" 第六节课";
obj[5][1] = "";
obj[5][2] = " 开会";
obj[5][3] = " ";
obj[5][4] = " ";
obj[5][5] = " ";
obj[5][6] = " ";
obj[5][7] = " ";
break;
case 6:
obj[6][0] =" 第七节课";
obj[6][1] = "";
obj[6][2] = " 有课";
obj[6][3] = " ";
obj[6][4] = " 开会";
obj[6][5] = " ";
obj[6][6] = " ";
obj[6][7] = " ";
break;
case 7:
obj[7][0] =" 第八节课";
obj[7][1] = "";
obj[7][2] = " 有课 ";
obj[7][3] = " ";
obj[7][4] = " ";
obj[7][5] = " ";
obj[7][6] = " ";
obj[7][7] = " ";
break;
}
}
}
JTable table=new JTable(obj, columnNames);
TableColumn column=null;
int colunms = table.getColumnCount();
for(int i=0;i
7.完成教师页面的学生名单页面(代码如下)
package com.pag_1;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
public class XueShengMingDanUI extends JFrame
{
public XueShengMingDanUI()
{
intiComponent();
}
//初始化窗体组件
private void intiComponent()
{
// 设置JTable的列名
String[] columnNames =
{ "学号","姓名", "专业", "班级"};
Object[][] obj=new Object[7][7];
for (int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
switch (j)
{
case 0:
obj[0][0] = " 14140301";
obj[0][1] = " 王小明";
obj[0][2] = " 通信工程";
obj[0][3] = " 2";
break;
case 1:
obj[1][0] = " 14140302";
obj[1][1] = " 王雷";
obj[1][2] = " 通信工程";
obj[1][3] = " 2";
break;
case 2:
obj[2][0] = " 14140303";
obj[2][1] = " 李芳";
obj[2][2] = " 通信工程";
obj[2][3] = " 2";
break;
case 3:
obj[3][0] = " 14140304";
obj[3][1] = " 张三";
obj[3][2] = " 通信工程";
obj[3][3] = " 2";
break;
case 4:
obj[4][0] = " 14140305";
obj[4][1] = " 李四";
obj[4][2] = " 通信工程";
obj[4][3] = " 2";
break;
case 5:
obj[5][0] = " 14140306";
obj[5][1] = " 文宇";
obj[5][2] = " 通信工程";
obj[5][3] = " 2";
break;
case 6:
obj[6][0] = " 14140307";
obj[6][1] = " 王飞";
obj[6][2] = " 通信工程";
obj[6][3] = " 2";
break;
}
}
}
JTable table=new JTable(obj, columnNames); //JTable的其中一种构造方法
TableColumn column=null; //设置JTable的列默认的宽度和高度
int colunms = table.getColumnCount();
for(int i=0;i
欢迎 关注 |
CSDN | Github | |
博客园 | 个人网站 | ||
此博客内容是本人在平时工作、学习中,写下这些小总结,其中内容多为初次接触,不能保证完全正确、最优,如有疑问或不足之处,望评论指出。谢谢! |