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 + -
显示快捷键?