📄 memberpane.java~248~
字号:
package memberpane;
import java.sql.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
public class MemberPane extends JPanel{
private JTree tree = null;
private JTabbedPane tabAbove = new JTabbedPane();
private JTabbedPane tabDown = new JTabbedPane();
//表格
private TableModel tmAbove = new DefaultTableModel();
private TableModel tmDownL = new DefaultTableModel();
private TableModel tmDownR = new DefaultTableModel();
private JTable tableAbove = new JTable();
private JTable tableDownL = new JTable();
private JTable tableDownR = new JTable();
//各滑动面板
private JScrollPane scrollPaneAbove = new JScrollPane();
private JScrollPane scrollPaneDownL = new JScrollPane();
private JScrollPane scrollPaneDownR = new JScrollPane();
//数据库连接
private Connection conn;{//连接数据库
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch (ClassNotFoundException ex) {
}
String dburl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=db.mdb";
try {
conn = DriverManager.getConnection(dburl);
} catch (SQLException ex1) {
}
}
//弹出菜单
private PopupMenu popupMenu = null;
/**
* 构造器
*/
public MemberPane(){
this.setLayout(new GridLayout(1,1));
//左面,包含树的面板
JScrollPane scrollPaneLeft = new JScrollPane();
DefaultMutableTreeNode top = new DefaultMutableTreeNode("会员类型");
createTree(top);
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(new SimpleTreeSelectionListener());
scrollPaneLeft.add(tree);
scrollPaneLeft.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPaneLeft.getViewport().setView(tree);
this.add(scrollPaneLeft);
//右面,上下分割面板
JSplitPane rightPane = new JSplitPane();
ImageIcon icon = new ImageIcon("images/middle.gif");
//初始化表格
initTables("全部员");
//右上表格
scrollPaneAbove.add(tableAbove);
scrollPaneAbove.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPaneAbove.getViewport().setView(tableAbove);
tabAbove.addTab("会员信息", icon, scrollPaneAbove,"第一个卡片提示信息!");
tabAbove.setSelectedIndex(0);
//右上表格,添加弹出菜单
popupMenu = new MemberPopupMenu(tableAbove);
this.add(popupMenu);
this.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
this_mousePressed(e);
}
});
scrollPaneAbove.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
scrollPaneAbove_mousePressed(e);
}
});
tabAbove.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
tabAbove_mousePressed(e);
}
});
tableAbove.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
tableAbove_mousePressed(e);
}
});
//右下,左表格
scrollPaneDownL.add(tableDownL);
scrollPaneDownL.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPaneDownL.getViewport().setView(tableDownL);
//右下,右表格
scrollPaneDownR.add(tableDownR);
scrollPaneDownR.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPaneDownR.getViewport().setView(tableDownR);
//右下分割面板
JSplitPane rightPaneDown = new JSplitPane();
rightPaneDown.setLeftComponent(scrollPaneDownL);
rightPaneDown.setRightComponent(scrollPaneDownR);
rightPaneDown.setDividerLocation(200);
tabDown.addTab("消费记录", icon, rightPaneDown,"第二个卡片提示信息!");
tabDown.setSelectedIndex(0);
//右面板,添加上下两个tappedPane,其中包含表格
rightPane.setLeftComponent(tabAbove);
rightPane.setRightComponent(tabDown);
rightPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
rightPane.setDividerLocation(250);
rightPane.setBorder(BorderFactory.createLoweredBevelBorder());
//分割面板,左右分别添加scrollPaneLeft和rightPane
JSplitPane splitPane = new JSplitPane();
splitPane.setLeftComponent(scrollPaneLeft);
splitPane.setRightComponent(rightPane);
splitPane.setDividerLocation(120);
splitPane.setDividerSize(1);
this.add(splitPane);
}
/**
* 初始化所有表格
* @param VIPKind String: 根据VIPKind的类型值决定显示哪一部分会员的信息
*/
private void initTables(String VIPKind){
//初始化右上表格
Statement stmt = null;
ResultSet rs = null;
if(VIPKind.equals("全部会员")){
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(
"select ID,Name,Sex,MinZu,VIPKind,Birthday,Unit,"
+ "Address,postcode,Phone,Occu,MovePhone,CertID,Email,"
+ "VIPID,Valid,Pass,Grade,EnterDate,EndDate,BeginMoney,"
+ "CurMoney,SumCost,BeginPoints,CurPoints,SumPoints,Mem"
+ " from VIP");
}
catch (SQLException ex) {
}
}else{
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(
"select ID,Name,Sex,MinZu,VIPKind,Birthday,Unit,"
+ "Address,postcode,Phone,Occu,MovePhone,CertID,Email,"
+ "VIPID,Valid,Pass,Grade,EnterDate,EndDate,BeginMoney,"
+ "CurMoney,SumCost,BeginPoints,CurPoints,SumPoints,Mem"
+ " from VIP where VIPKind = '普通会员'");
}
catch (SQLException ex) {
}
}
Vector row = new Vector();//行
Vector col = null;//列
//添加行列元素
try {
while (rs.next()) {
//从结果集中得到元素
String MID = rs.getString("ID");
String Mname = rs.getString("Name");
String MvipKind = rs.getString("VIPKind");
String Mvipid = rs.getString("VIPID");
String Msex = rs.getString("Sex");
String Mgrade = rs.getString("Grade");
String Mphone = rs.getString("Phone");
String Mmovephone = rs.getString("MovePhone");
String Mbirthday = rs.getString("Birthday");
String Mvalid = rs.getString("Valid");
String Mpass = rs.getString("Pass");
String Menterdate = rs.getString("EnterDate");
String Menddate = rs.getString("EndDate");
String Mbeginmoney = rs.getString("BeginMoney");
String Mcurmoney = rs.getString("CurMoney");
String Msumcost = rs.getString("SumCost");
String Mbeginpoints = rs.getString("BeginPoints");
String Mcurpoints = rs.getString("CurPoints");
String Msumpoints = rs.getString("SumPoints");
String Mminzu = rs.getString("MinZu");
String Munit = rs.getString("Unit");
String Maddress = rs.getString("Address");
String Mpostcode = rs.getString("postcode");
String Moccu = rs.getString("Occu");
String Mcertid = rs.getString("CertID");
String Memail = rs.getString("Email");
//将元素添加到表格中
col = new Vector();
col.add(MID);
col.add(Mname);
col.add(MvipKind);
col.add(Mvipid);
col.add(Msex);
col.add(Mgrade);
col.add(Mphone);
col.add(Mmovephone);
col.add(Mbirthday);
col.add(Mvalid);
col.add(Mpass);
col.add(Menterdate);
col.add(Menddate);
col.add(Mbeginmoney);
col.add(Mcurmoney);
col.add(Msumcost);
col.add(Mbeginpoints);
col.add(Mcurpoints);
col.add(Msumpoints);
col.add(Mminzu);
col.add(Munit);
col.add(Maddress);
col.add(Mpostcode);
col.add(Moccu);
col.add(Mcertid);
col.add(Memail);
row.add(col);
}
}
catch (SQLException ex1) {
}
//表头列名字
Vector TableHeaderA = new Vector();
String[] HeaderA = {"ID","姓名","会员类型","会员卡号","性别","类别","联系电话","手机",
"出生日期","有效","密码","办卡日期","到期日期","初始储值","当前储值",
"累计消费","初始积分","当前积分","累计积分","民族","单位","住址","邮政编码",
"职业","证件号码","电子邮箱"};
for(int i = 0; i < HeaderA.length;i++){
TableHeaderA.add(HeaderA[i]);
}
//创建表格
tmAbove = new DefaultTableModel(row,TableHeaderA);
tableAbove = new JTable(tmAbove);
//设置列宽度
tableAbove.setAutoResizeMode(0);
TableColumn column = null;
column = tableAbove.getColumnModel().getColumn(0);
column.setPreferredWidth(50);
column = tableAbove.getColumnModel().getColumn(1);
column.setPreferredWidth(80);
column = tableAbove.getColumnModel().getColumn(2);
column.setPreferredWidth(80);
column = tableAbove.getColumnModel().getColumn(3);
column.setPreferredWidth(80);
column = tableAbove.getColumnModel().getColumn(4);
column.setPreferredWidth(30);
column = tableAbove.getColumnModel().getColumn(5);
column.setPreferredWidth(50);
column = tableAbove.getColumnModel().getColumn(6);
column.setPreferredWidth(120);
column = tableAbove.getColumnModel().getColumn(7);
column.setPreferredWidth(120);
column = tableAbove.getColumnModel().getColumn(8);
column.setPreferredWidth(150);
column = tableAbove.getColumnModel().getColumn(9);
column.setPreferredWidth(30);
column = tableAbove.getColumnModel().getColumn(10);
column.setPreferredWidth(80);
column = tableAbove.getColumnModel().getColumn(11);
column.setPreferredWidth(150);
column = tableAbove.getColumnModel().getColumn(12);
column.setPreferredWidth(150);
column = tableAbove.getColumnModel().getColumn(13);
column.setPreferredWidth(100);
column = tableAbove.getColumnModel().getColumn(14);
column.setPreferredWidth(100);
column = tableAbove.getColumnModel().getColumn(15);
column.setPreferredWidth(100);
column = tableAbove.getColumnModel().getColumn(16);
column.setPreferredWidth(100);
column = tableAbove.getColumnModel().getColumn(17);
column.setPreferredWidth(100);
column = tableAbove.getColumnModel().getColumn(18);
column.setPreferredWidth(100);
column = tableAbove.getColumnModel().getColumn(19);
column.setPreferredWidth(50);
column = tableAbove.getColumnModel().getColumn(20);
column.setPreferredWidth(100);
column = tableAbove.getColumnModel().getColumn(21);
column.setPreferredWidth(150);
column = tableAbove.getColumnModel().getColumn(22);
column.setPreferredWidth(50);
column = tableAbove.getColumnModel().getColumn(23);
column.setPreferredWidth(80);
column = tableAbove.getColumnModel().getColumn(24);
column.setPreferredWidth(150);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -