{
mg.setFlag(false);//设置管理员权限 } }
catch(Exception e) {
e.printStackTrace(); } }
public void initJp() {
jp.setLayout(cl);//设置布局管理器为卡片布局 jp.add(jlRoot,\添加根结点显示信息
jp.add(new Student(),\添加学生管理模块界面
jp.add(new BookManage(),\添加图书管理模块界面 jp.add(new SearchBook(),\添加查找图书管理界面
jp.add(new BorrowBook(),\添加借阅预约图书模块界面 jp.add(new ReturnBook(),\添加归还挂失图书界面 jp.add(this.mg,\添加管理员管理模块界面 jp.add(new ExceedTime(),\添加罚款处理界面 }
public void addTreeListener() {
jt.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode cdmtn=//得到选中的节点对象
(DefaultMutableTreeNode)e.getPath().getLastPathComponent();
NodeValue cnv=(NodeValue)cdmtn.getUserObject();//得到自定义节点对象 if(cnv.value.equals(\图书馆管理系统\{//显示根结点信息 cl.show(jp,\}
if(cnv.value.equals(\学生用户管理\{//显示学生用户管理界面 cl.show(jp,\}
else if(cnv.value.equals(\图书管理\{//显示图书管理界面 cl.show(jp,\}
if(cnv.value.equals(\查询图书\
{//显示查询图书界面 cl.show(jp,\}
else if(cnv.value.equals(\借阅预约图书\{//显示借阅预约图书界面 cl.show(jp,\}
else if(cnv.value.equals(\归还挂失图书\{//显示归还挂失图书界面 cl.show(jp,\}
else if(cnv.value.equals(\交纳罚款\{//显示缴纳罚款界面 cl.show(jp,\}
else if(cnv.value.equals(\管理员管理\{//显示管理员管理界面 cl.show(jp,\}
else if(cnv.value.equals(\退出\{//显示退出界面
int i=JOptionPane.showConfirmDialog(Root.this,\是否退出系统?\\消息\if(i==JOptionPane.YES_OPTION) {//退出系统 System.exit(0); } } } }); }
public static void main(String args[]){new Root(\}
class NodeValue {
String value;//自定义节点对象字符属性 public NodeValue(String value) {//构造器
this.value=value; }
public String getValue() {//value的Get方法 return this.value; }
@Override
public String toString() {//重写toString方法 return value; } }
3, 查询图书功能实现模块
当学生用户在学生信息系统中,单击‘查询图书’节点时,就会进入查询图书界面,页面开发的详细代码如下: package wyf.hxl; import javax.swing.*; import java.awt.*;
import java.awt.event.*; import javax.swing.table.*; import javax.swing.event.*; import java.sql.*; import java.util.*; import java.util.Date;
public class SearchBook extends JPanel implements ActionListener{ int flag; String sql; DataBase db;
//创建分割方向为上下的JSplitePane对象
private JSplitPane jsp=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true); private JPanel jpt=new JPanel();//创建JPanel对象 private JPanel jpb=new JPanel();
//创建表示下拉列表框数据模型的字符串数组
private String[] str={\书名\出版社\作者\购买时间\
private JComboBox jcb=new JComboBox(str);//创建下拉列表框 private JButton jb=new JButton(\提交\//创建按钮 private JLabel[] jlArray=new JLabel[]{ new JLabel(\ 书 名\new JLabel(\ 作 者\new JLabel(\出版社\};
private JTextField[] jtxtArray=new JTextField[]{//创建文本框 new JTextField(),new JTextField(), new JTextField(),new JTextField() };
private JRadioButton[] jrbArray={//创建单选按钮 new JRadioButton(\简单查询\new JRadioButton(\高级查询\};
private ButtonGroup bg=new ButtonGroup();//创建按钮组 Vector
head.add(\书号\书名\head.add(\作者\出版社\
head.add(\购进时间\是否借阅\head.add(\是否预约\}
Vector
DefaultTableModel dtm=new DefaultTableModel(data,head); //创建表格模型 JTable jt=new JTable(dtm); //创建Jtable对象
JScrollPane jspn=new JScrollPane(jt);//将JTable封装到滚动窗格 public SearchBook(){
this.setLayout(new GridLayout(1,1));//设置查询图书界面为网格布局 //设置整个RetrunBook界面上下部分均为空布局管理器 jpt.setLayout(null); jpb.setLayout(null);
//设置单选框的大小、位置,并添加事件监听器 jpt.add(jcb);
jcb.setBounds(160,20,150,20); jcb.addActionListener(this);
//添加JButton设置其大小位置并添加事件监听器 jpt.add(jb);
jb.setBounds(560,20,120,20); jb.addActionListener(this);
for(int i=0;i<2;i++){//对单选按钮进行设置 jrbArray[i].setBounds(20,20+i*40,100,20); jpt.add(jrbArray[i]);
jrbArray[i].addActionListener(this); bg.add(jrbArray[i]); }
for(int i=0;i<3;i++){//设置标签和文本框的坐标,并将其添加进JPanel jlArray[i].setBounds(120+i*200,60,80,20); jtxtArray[i].setBounds(200+i*180,60,120,20); jpt.add(jtxtArray[i]); jpt.add(jlArray[i]); }
for(int i=0;i<3;i++){//设置文本框为不可用 jtxtArray[i].setEditable(false); }
//设置文本框的坐标,并添加进jpt jtxtArray[3].setBounds(350,20,120,20); jpt.add(jtxtArray[3]);
jsp.setTopComponent(jpt);//把jpt设置到jsp的上部窗格 jsp.setBottomComponent(jspn); jsp.setDividerSize(4); this.add(jsp);
jsp.setDividerLocation(100);//设置jsp中分割条的初始位置 //设置窗体的大小位置及可见性 this.setBounds(3,10,600,400); this.setVisible(true); }
//为事件加载的监听器加上处理事件
public void actionPerformed(ActionEvent e){
if(jrbArray[0].isSelected()){//\简单查询\单选按钮被选中 jtxtArray[3].setEditable(true);
for(int i=0;i if(jcb.getSelectedIndex()>=0&&jcb.getSelectedIndex()<4){ jtxtArray[3].requestFocus(); if(e.getSource()==jb){//如果事件源为\提交\按钮,则执行检索 String str=jtxtArray[3].getText().trim(); if(str.equals(\ JOptionPane.showMessageDialog(this,\请输入必要的信息!!!\\消息\return;