package view;
import com.demo.util.DBConn;
import org.junit.Test;
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.*;
import java.awt.AWTEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.Vector;
class MainFrm extends JFrame {
//数据库相关
private Connection con;//数据库连接
private PreparedStatement pstmt;//执行数据库操作
private ResultSet rs;
//视图相关
private JPanel top; //顶部面板
private JSplitPane jsp; //拆分窗格
private JPanel bottom; //底部面板
//状态栏
private JLabel statusBar;//显示状态栏文字的标签
//菜单栏
private JMenuBar menuBar; // 造一个菜单栏对象
private JMenu menuFile, menuEdit, menuHelp, menuNew; // 造菜单
private JMenuItem itemSave, itemExit, itemCopy, itemPost, itemAbout, itemClass, itemJava, itemOther;
//工具栏
private JToolBar toolBar; // 造一个菜单栏对象
private JButton btnSave, btnPreview, btnDownload, btnSelect, btnDelete, btnAdd, btnDel;//工具栏按钮
//选项卡
private JTabbedPane tabbedPane1;
private JLabel label1, label2;
private JPanel panel1, panel2;
//树
private DefaultMutableTreeNode root;
private JScrollPane jp;
private JTable table;//表格
private DefaultTableModel model;//表格数据模型
String[] name = {"序号", "用户名", "密码", "EMAIL", "出生日期"};
String[][] data = new String[20][5];
Vector vName;
Vector vData;
Vector r;
public MainFrm() {
setBounds(300, 100, 1200, 800);
setVisible(true);
//test
vName=new Vector();
vData=new Vector();
// int i;
for(int i=0;i<5;i++)
vName.add(name[i]);
//顶部
JPanel top = new JPanel(new BorderLayout()); //顶部面板
jsp = new JSplitPane(); //拆分窗格
JPanel bottom = new JPanel(); //底部面板
//状态栏
statusBar = new JLabel("状态栏");//显示状态栏文字的标签
//菜单栏
menuBar = new JMenuBar(); // 造一个菜单栏对象
menuFile = new JMenu("File"); // 造菜单
menuEdit = new JMenu("Edit");
menuHelp = new JMenu("Help");
menuNew = new JMenu("New");
itemSave = new JMenuItem("Save");// 造菜单项
itemExit = new JMenuItem("Exit");
itemCopy = new JMenuItem("Copy");
itemPost = new JMenuItem("Post");
itemAbout = new JMenuItem("About");
itemClass = new JMenuItem("Class");
itemJava = new JMenuItem("Java Script");
itemOther = new JMenuItem("Other....");
// 将菜单添加到菜单栏
menuBar.add(menuFile);
menuBar.add(menuEdit);
menuBar.add(menuHelp);
// 将子菜单、菜单项添加到菜单
menuFile.add(menuNew);
menuFile.addSeparator(); // 添加一条分割线
menuFile.add(itemSave);
menuFile.add(itemExit);
menuNew.add(itemClass);
menuNew.add(itemJava);
menuNew.add(itemOther);
menuEdit.add(itemCopy);
menuEdit.add(itemPost);
menuHelp.add(itemAbout);
//工具栏
toolBar = new JToolBar();
btnSave = new JButton("保存");
btnPreview = new JButton("预览");
btnDownload = new JButton("下载");
btnSelect = new JButton("查询");
btnDelete = new JButton("删除");
btnAdd = new JButton("新增");
btnDel = new JButton("删除");
// 将按钮添加到工具栏
toolBar.add(btnSave);
toolBar.add(btnPreview);
toolBar.add(btnDownload);
toolBar.add(btnSelect);
toolBar.addSeparator();
toolBar.add(btnAdd);
toolBar.add(btnDel);
//选项卡
tabbedPane1 = new JTabbedPane();
//选项卡面板
panel1 = new JPanel(new BorderLayout());
panel2 = new JPanel();
//选项卡面板标签
label1 = new JLabel("我是panel1面板的标签");
label2 = new JLabel("我是panel2面板的标签");
//初始化数据
try {
initConnection();
queryData();
} catch (Exception e) {
e.printStackTrace();
}
//表格
table = new JTable();
table.setSelectionForeground(Color.BLUE);//设置前景色
table.setSelectionBackground(Color.yellow);//设置背景色
table.setRowHeight(30);//行高像素
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);//选择模式
/*
* MULTIPLE_INTERVAL_SELECTION 随便选
* SINGLE_INTERVAL_SELECTION 连选
* SINGLE_SELECTION 单选
*/
//表格模型
model = new DefaultTableModel(vData, vName);
table.setModel(model);
jp = new JScrollPane(table);
panel1.add(jp, BorderLayout.CENTER); // 将标签添加至对应的面板
panel2.add(label2);
tabbedPane1.add(panel1, "用户信息"); // 将JPnael面板添加到选项卡面板
tabbedPane1.add(panel2, "学籍信息");
//树列表
DefaultMutableTreeNode root = new DefaultMutableTreeNode("学生信息管理");
String Teachers[][] = new String[3][];
Teachers[0] = new String[]{"基本信息", "联系信息"};
Teachers[1] = new String[]{"寝室管理", "入住管理"};
Teachers[2] = new String[]{};
String gradeNames[] = {"学籍信息", "住宿信息", "用户信息"};
DefaultMutableTreeNode node = null;
DefaultMutableTreeNode childNode = null;
int length = 0;
for (int i = 0; i < 3; i++) {
length = Teachers[i].length;
node = new DefaultMutableTreeNode(gradeNames[i]);
for (int j = 0; j < length; j++) {
childNode = new DefaultMutableTreeNode(Teachers[i][j]);
node.add(childNode);
}
root.add(node);
}
JTree tree = new JTree(root);
top.add(menuBar, BorderLayout.NORTH);
top.add(toolBar, BorderLayout.SOUTH);
jsp.setDividerLocation(200); // 设置分割线的位置
jsp.add(tree, JSplitPane.LEFT); // 添加组件并设置组件在分割窗格的位置
jsp.add(tabbedPane1, JSplitPane.RIGHT);
bottom.add(statusBar);
this.add(top, BorderLayout.NORTH);
this.add(jsp, BorderLayout.CENTER);
this.add(bottom, BorderLayout.SOUTH);
this.setVisible(true);
addListenter();
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
System.out.println(model.getValueAt(2,0));
}
});
}
public void initConnection() throws Exception {
DBConn dbConn = new DBConn();
con = dbConn.CreateConn();
if (con != null) {
System.out.println("success");
} else
System.out.println("fail");
}
public void closeCon() {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (con != null)
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void queryData() throws Exception {
Stri