StudentSystem.java
~~~
package zyw.student;
import zyw.admin.NodeValue;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class StudentSystem extends JFrame implements ActionListener {
DefaultMutableTreeNode[] dmtn={//創建節點數組
new DefaultMutableTreeNode(new NodeValue("學生用戶管理系統")),
new DefaultMutableTreeNode(new NodeValue("查詢圖書")),
new DefaultMutableTreeNode(new NodeValue("預約圖書")),
new DefaultMutableTreeNode(new NodeValue("掛失圖書")),
new DefaultMutableTreeNode(new NodeValue("退出"))
};
DefaultTreeModel dtm=new DefaultTreeModel(dmtn[0]);//創建樹模型,指定根節點為"學生管理系統"
JTree jt=new JTree(dtm); //創建包含dtm樹模型的JTree對象
JScrollPane jsp=new JScrollPane(jt); //為JTree創建滾動窗體
private JSplitPane jsplr=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true); //分割方向為上下方向
Image image=new ImageIcon("tsgl.jpg").getImage();
ImageIcon ii = new ImageIcon(image);
private JLabel jlRoot=new JLabel(ii);//標簽文本自動居中
private JPanel jp=new JPanel(); //創建JPanel對象
CardLayout cl=new CardLayout(); //獲取卡片布局管理器引用
public StudentSystem(){
this.initJp();
jt.addTreeSelectionListener(new TreeSelectionListener(){//用內部類顯示樹的各選擇節點
public void valueChanged(TreeSelectionEvent e){
DefaultMutableTreeNode cdmtn=
(DefaultMutableTreeNode)e.getPath().getLastPathComponent();
NodeValue cnv=(NodeValue)cdmtn.getUserObject();
if(cnv.getValue().equals("學生用戶管理系統")){
cl.show(jp,"root");//顯示主界面
}
if(cnv.getValue().equals("查詢圖書")){
cl.show(jp,"ts");//顯示"查詢圖書"界面
}
else if(cnv.getValue().equals("預約圖書")){
cl.show(jp,"OrderBook");//顯示"預約圖書"界面
}
else if(cnv.getValue().equals("掛失圖書")){
cl.show(jp,"GuaShi");//顯示"歸還掛失圖書"界面
}
else if(cnv.getValue().equals("退出")){//用選擇菜單提示是否退出系統
int i=JOptionPane.showConfirmDialog(StudentSystem.this,
"是否退出系統?","消息",JOptionPane.YES_NO_OPTION);
if(i==JOptionPane.YES_OPTION){System.exit(0);}
}
}
});
for(int i=1;i<dmtn.length;i++){//向根節點添加子節點
dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);
}
jt.setEditable(false);//設置該樹中節點是不可編輯的
this.add(jsplr);//將包含樹的滾動窗口添加進窗體
jsplr.setLeftComponent(jt);//將包含樹的滾動窗口添加進左邊的子窗口
//為jp設置大小位置并添加進右邊的子窗口
jp.setBounds(200,50,300,400);
jsplr.setRightComponent(jp);
jsplr.setDividerLocation(150);//設置分隔條的初始位置
jsplr.setDividerSize(4); //設置分隔條的寬度
jlRoot.setFont(new Font("Courier",Font.PLAIN,30));
jlRoot.setHorizontalAlignment(JLabel.CENTER);
jlRoot.setVerticalAlignment(JLabel.CENTER);
//設置窗體的關閉動作,標題,大小,位置及可見性
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//對標題和logo圖片進行初始化
Image image=new ImageIcon("ico.gif").getImage();
this.setIconImage(image);
this.setTitle("學生管理系統");
//設置窗體首次出現的大小和位置--自動居中
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int centerX=screenSize.width/2;
int centerY=screenSize.height/2;
int w=500;//本窗體寬度
int h=400;//本窗體高度
this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//設置窗體出現在屏幕中央
this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗體全屏
this.setVisible(true);
jt.setShowsRootHandles(true);//設置顯示根節點的控制圖標
}
public void initJp(){//對所引用的方法進行聲明
jp.setLayout(cl);
jp.add(jlRoot,"root");
/*jp.add(new SearchBook(),"ts");
jp.add(new OrderBook(),"OrderBook");
jp.add(new GuaShi(),"GuaShi");*/
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void main(String[]args){
new StudentSystem();
}
}
~~~
