学生管理系统主类

3 篇文章 0 订阅
2 篇文章 0 订阅

主类用的卡片布局为主

代码如下

package student;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.event.WindowStateListener;
import java.util.Enumeration;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.plaf.FontUIResource;

import utils.SqlUtils;

public class Guanliye extends JFrame {
	public static long shiyoncs=1;
	{//使用次数累加
		shiyoncs++;
	}
	//整体内容面板和this
	private JPanel contentPane;
	private Guanliye frame=this;
	
	private Font font=new Font("黑体",1,20);
//	对应功能选择栏 北部的面板
	private JPanel bpanel;
//	主要数据面板放置在中间。卡片切换用的面板。
	private JPanel zhuyao;
	//卡片布局对象
	CardLayout card;
//	北部面板功能按钮
	private JButton xsxx;
	private JButton czxs;
	private JButton gly;
	private JButton	bz;
	private JButton tuichu;
	
	
	/**
	 * Launch the application.
	 * Launch the application.
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Guanliye frame = new Guanliye();
					/*//设置显示
					frame.setVisible(true);*/
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 * 且初始化
	 */
	public Guanliye() {
		InitGlobalFont(font);
		setTitle("学生管理系统");
		//基础设置 初始化对象
		contentPane = new JPanel();
		bpanel=new JPanel();
		zhuyao=new JPanel();
//		设置主布局为边框布局
		contentPane.setLayout(new BorderLayout());
		contentPane.add(bpanel,BorderLayout.NORTH);
		contentPane.add(zhuyao,BorderLayout.CENTER);
		
//		设置主窗体内容面板
		setContentPane(contentPane);
//		窗口关闭操作和位置
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(200, 150, 650,550);
		
		//添加北部按钮面板(显示功能)
		beibumianban();
		
		this.setVisible(true);
//用户登录
		
//		直接要用户登录
		Logpage denglu=new Logpage(this,"登录页");
		//窗口设置显示。
		denglu.setVisible(true);
		if(denglu.getUser()==null) {
//			登录没有成功则退出
			System.exit(0);
		}
//		为功能内容面板添加要显示的各个功能面板
		neirmbtj();


	}
	/** 
	* 统一设置字体,父界面设置之后,所有由父界面进入的子界面都不需要再次设置字体 
	*/ 
	private static void InitGlobalFont(Font font) {
		FontUIResource fontRes = new FontUIResource(font);
		for (Enumeration<Object> keys = UIManager.getDefaults().keys();
		keys.hasMoreElements(); ) {
			Object key = keys.nextElement();
			Object value = UIManager.get(key);
			if (value instanceof FontUIResource) {
				UIManager.put(key, fontRes);
			}
		}
	}
	
	/**
	 * 北部相应功能按钮的面板初始化。
	 * 以及绑定事件
	 */
	private void beibumianban() {
		FlowLayout fl_cpanel = new FlowLayout();
//		设置组件中间间隔
//		垂直间距 y
		fl_cpanel.setVgap(3);
//		水平间距 x
		fl_cpanel.setHgap(18);
		bpanel.setLayout(fl_cpanel);
		bpanel.setBackground(Color.cyan);
		Gnshijianchuli chuli=new Gnshijianchuli();
		xsxx=new JButton("学生信息");
		xsxx.addActionListener(chuli);
		czxs=new JButton("查找学生");
		czxs.addActionListener(chuli);
		gly=new JButton("管理员信息");
		gly.addActionListener(chuli);
		bz=new JButton("帮助");
		bz.addActionListener(chuli);
		tuichu=new JButton("退出");
		tuichu.addActionListener(chuli);
		bpanel.add(xsxx);
		bpanel.add(czxs);
		bpanel.add(gly);
		bpanel.add(bz);
		bpanel.add(tuichu);
	}
	
	/**
	 * 添加卡片布局要切换的各个面板,
	 * 且调用事件监听处理方法实现面板切换。
	 */
	private void neirmbtj() {
		//新建卡片布局对象
		card=new CardLayout();
//		将主要内容展示面板设为卡片布局
		zhuyao.setLayout(card);
		
//		添加要切换为的面板,并设置好面板名。因为根据面板名切换面板。
		StudentInformation xsxxmb=new StudentInformation();
		FindStudentP czxsmb=new FindStudentP();
		HelpPanel bangzmb=new HelpPanel();
		AdminInformation glyxxmb=new AdminInformation();
		zhuyao.add(xsxxmb,"xsxinxi");
		zhuyao.add(czxsmb,"chazhao");
		zhuyao.add(glyxxmb,"guanliy");
		zhuyao.add(bangzmb,"bangzhu");
//		退出按钮按了之后退出软件,所以不用切换。
	}
	

//	实现各功能面板的切换
	class Gnshijianchuli implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent e) {
			if(e.getActionCommand().equals("学生信息")) {
//				调用show方法显示学生信息面板
				card.show(zhuyao,"xsxinxi");
			}else
				if(e.getActionCommand().equals("查找学生")) {
					card.show(zhuyao, "chazhao");
			}else if(e.getActionCommand().equals("管理员信息")){
				card.show(zhuyao, "guanliy");
			}else if(e.getActionCommand().equals("帮助")) {
				card.show(zhuyao, "bangzhu");
			}else if(e.getActionCommand().equals("退出")) {
				if(JOptionPane.showConfirmDialog(frame, "确定要退出吗?")==0) {
					System.exit(0);
				}
			}
		}
		
	}

}

有问题可以私信或评论

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值