您的位置:首页 > 产品设计 > UI/UE

[置顶] 用Java GUI做一个简单的管理系统

2017-04-17 16:07 555 查看
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
{
1a27e

//定义组件
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();
}
}


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