您的位置:首页 > 编程语言 > Java开发

Java GUI制作简单的管理系统

2018-01-12 10:10 916 查看

本文实例为大家分享了Java GUI管理系统的具体代码,供大家参考,具体内容如下

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("");
}
}

运行图1

 

用户名和密码如下:

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<colunms;i++)
{
column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(100);
}
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scroll = new JScrollPane(table);
scroll.setSize(300, 50);
add(scroll);
this.setLocation(450, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
}
public static void main(String[] args)
{
new KeChengBiaoUI();
}
}

课程表界面

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<colunms;i++)
{
column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(100);   //将每一列的默认宽度设置为100
}
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //设置JTable自动调整列表的状态,此处设置为关闭
JScrollPane scroll = new JScrollPane(table); //用JScrollPane装载JTable,这样超出范围的列就可以通过滚动条来查看
scroll.setSize(300, 50);
add(scroll);
this.setLocation(450, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
}
public static void main(String[] args)
{
new ChengJiBiaoUI();
}
}

学生成绩表界面

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<colunms;i++)
{
column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(100);
}
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scroll = new JScrollPane(table);
scroll.setSize(300, 50);
add(scroll);
this.setLocation(450, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
}
public static void main(String[] args)
{
new KeChengGuanLiUI();
}
}

教师课程管理

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<colunms;i++)
{
column = table.getColumnModel().getColumn(i);
column.setPreferredWidth(100);   //将每一列的默认宽度设置为100
}
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //设置JTable自动调整列表的状态,此处设置为关闭
JScrollPane scroll = new JScrollPane(table); //用JScrollPane装载JTable,这样超出范围的列就可以通过滚动条来查看
scroll.setSize(300, 50);
add(scroll);
this.setLocation(450, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
}
public static void main(String[] args)
{
new XueShengMingDanUI();
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java GUI 管理系统