maingui.java

来自「适合学生课程设计使用,这是我自己编写的一个系统.」· Java 代码 · 共 180 行

JAVA
180
字号
package view;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Date;
import java.awt.Font;
import java.util.Set;
import java.util.Iterator;
import java.util.HashSet;

import bean.*;
import view.popedom.*;
import view.*;

/**
 * @author   Administrator
 */
public class MainGUI extends JFrame implements ActionListener {
	private JMenuBar mb;					//菜单栏
	private JMenu menuFile;
	private JMenuItem miQuit;
	private JSplitPane sph;
	private JSplitPane spv;
	
	private JPanel panelLeft;				//用于布局
	private JPanel panelRight;
	private JPanel paneldefault;
	private JLabel labelTitle;
	private JPanel panelStatusBar;
	private JLabel labelDate;				//用于在状态栏中显示日期
	private userInfo ui;
	
	private String roleName;
	private String userName;
	
	public MainGUI(userInfo ui) {			//主界面初始化
		this.ui = ui;
		init();								//调用初始化方法
	}
	
	public void init() {					//初始化方法
		setMenuBar();						//调用菜单栏初始化方法
		setLeft();							//调用左部分面板初始化方法
		setRight();							//调用右部分面板初始化方法
		setStatusBar();						//调用状态栏初始化方法
		setMain();							//调用主界面初始化方法
	}
	
	public void actionPerformed(ActionEvent e) {	//事件相应
		if(e.getSource() == miQuit) {				//相应退出事件
			this.dispose();							//释放主界面资源
		} else if(e.getActionCommand().equals("权限")) {	//促发的是‘权限’按钮事件
			System.out.println("e.getActionCommand().equals()");	
			popedomJpanel pj = new popedomJpanel();		//激活权限模块
			panelRight.add("popedom",pj);				
			((CardLayout)panelRight.getLayout()).show(panelRight,"popedom");	//权限模块显示在主界面的右部分
		} else if(e.getActionCommand().equals("角色")) {	//激活角色模块,还未实现
			System.out.println("角色");
		} else if(e.getActionCommand().equals("书")) {	//书,还未实现
			System.out.println("e.getActionCommand().equals()");	
			bookInfoJpanel bij = new bookInfoJpanel();		//激活权限模块
			panelRight.add("bookInfo",bij);				
			((CardLayout)panelRight.getLayout()).show(panelRight,"bookInfo");
		} else if(e.getActionCommand().equals("人")) {	//激活人模块,还未实现
			System.out.println("人");
		} else if(e.getActionCommand().equals("读者")) {	//激活读者模块,还未实现
			System.out.println("读者");
		} else if(e.getActionCommand().equals("借/还")) {	//激活借/还模块,还未实现
			System.out.println("借/还");
		} else if(e.getActionCommand().equals("图书管理")) {	//激活图书管理模块,还未实现
			System.out.println("图书管理");
		} else if(e.getActionCommand().equals("数据导出")) {	//激活数据导出模块,还未实现
			System.out.println("数据导出");
		} else if(e.getActionCommand().equals("查询")) {	//激活查询模块,还未实现
			System.out.println("查询");
		} else if(e.getActionCommand().equals("个人信息")) {	//激活个人信息模块,还未实现
			System.out.println("个人信息");
		} else if(e.getActionCommand().equals("规则")) {	//激活规则模块,还未实现
			System.out.println("规则");
		}
	}
	
	public void setLeft() {							//左部分面板初始化方法
		panelLeft = new JPanel();
		panelLeft.setLayout(new GridLayout(5,1));	//设置布局格式为网格布局方式
		Set<role> srole = this.ui.getRol();			//获得登录用户的角色信息
		Iterator riter = srole.iterator();
		if(riter.hasNext()) {
			role rol = (role)riter.next();
			roleName = rol.getName();
			Set<module> smod = rol.getMod();		//根据角色获得相应的模块信息
			Iterator miter = smod.iterator();
			while(miter.hasNext()) {
				module mod = (module)miter.next();
				JButton button = new JButton(mod.getName());	//相应的模块由按钮代替,当促发按钮事件时,激活相应的模块,并进行操作
				button.addActionListener(this);
				panelLeft.add(button);
			}
		}	
	}
	
	public void setRight() {							//右部分面板初始化方法
		panelRight = new JPanel();
		panelRight.setLayout(new CardLayout());
		paneldefault = new JPanel();
		Font font = new Font("隶书",Font.BOLD,40);		//设置字体
		userName = this.ui.getName();
		labelTitle = new JLabel("LMS welcome: " + userName);
		labelTitle.setForeground(Color.RED);			//设置前景色或字体颜色
		labelTitle.setFont(font);
		paneldefault.add(labelTitle);
		panelRight.add("default",paneldefault);
		((CardLayout)panelRight.getLayout()).show(panelRight,"default");
	}
	
	public void setStatusBar() {						//状态栏初始化方法
		panelStatusBar = new JPanel();
		FlowLayout fl = new FlowLayout();
		fl.setAlignment(FlowLayout.RIGHT);				//设置布局中为右对齐方式
		panelStatusBar.setLayout(fl);
		labelDate = new JLabel(new Date().toString());
		panelStatusBar.add(labelDate);
		
	}

	public void setMain() {								//主界面初始化方法
		this.setTitle("图书管理系统————" + roleName + "用户界面");	//设置主界面的标题
		Container con = this.getContentPane();
		con.setLayout(new BorderLayout());
		
		sph = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,panelLeft,panelRight);
		sph.setDividerLocation(60);
		sph.setOneTouchExpandable(true);
		sph.setDividerSize(5);
		spv = new JSplitPane(JSplitPane.VERTICAL_SPLIT,false,sph,panelStatusBar);
		spv.setDividerLocation(407);
		spv.setOneTouchExpandable(true);
		spv.setDividerSize(5);
		
		con.add(spv,BorderLayout.CENTER);		//将组件和面板添加到主界面中
		
		this.setSize(600,500);					//设置主界面启动后的大小
		
		Toolkit tk = Toolkit.getDefaultToolkit();
		Dimension ds = tk.getScreenSize();
		int screenWidth = ds.width;
		int screenHeight = ds.height;
		ds = this.getSize();
		int frameWidth = ds.width;
		int frameHeight = ds.height;
		this.setLocation((screenWidth-frameWidth)/2,(screenHeight-frameHeight)/2);	//设置主界面启动后出现在屏幕上的位置
		
		this.setVisible(true);					//设置主界面启动后为可见
		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				dispose();						//释放主界面,回到欢迎界面
			}
		});
	}
	
	public void setMenuBar() {						//菜单栏初始化方法
		mb = new JMenuBar();
		this.setJMenuBar(mb);
		menuFile = new JMenu("File");
		menuFile.setMnemonic('F');
		miQuit = new JMenuItem("Quit");
		miQuit.setMnemonic('Q');					//设置快捷键为‘Q’
		miQuit.addActionListener(this);				//添加事件监听
		menuFile.add(miQuit);
		mb.add(menuFile);
	}
	
	public static void main(String[] args) {
		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?