📄 memberpane.java~252~
字号:
*根据右上表格选择,在右下左表格显示对应项
*/
private void showAttributesInTableL(int selectedRow){
//初始化表格
String vipid = tableAbove.getValueAt(selectedRow,3).toString();//获取VIPID值
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery("select BillID,OpDate,VIPID,TotalCount,TotalMoney,Points"
+" from Bills where VIPID=" + "'" + vipid + "'");
}
catch (SQLException ex) {
}
Vector row = new Vector();//行
Vector col = null;//列
//添加行列元素
try {
while (rs.next()) {
//从结果集中得到元素
String Mbillid = rs.getString("BillID");
String Mopdate = rs.getString("OpDate");
String Mvipid = rs.getString("VIPID");
String Mtotalcount = rs.getString("TotalCount");
String Mtotalmoney = rs.getString("TotalMoney");
String Mpoints = rs.getString("Points");
//将元素添加到表格中
col = new Vector();
col.add(Mbillid);
col.add(Mopdate);
col.add(Mvipid);
col.add(Mtotalcount);
col.add(Mtotalmoney);
col.add(Mpoints);
row.add(col);
}
}
catch (SQLException ex1) {
}
//表头列名字
Vector TableHeader = new Vector();
String[] Header = {"单据编号","开单日期","会员卡号","数量","金额","积分"};
for(int i = 0; i < Header.length;i++){
TableHeader.add(Header[i]);
}
//创建表格
tmDownL = new DefaultTableModel(row,TableHeader);
tableDownL = new JTable(tmDownL);
//设置列宽度
tableDownL.setAutoResizeMode(0);
TableColumn column = null;
column = tableDownL.getColumnModel().getColumn(0);
column.setPreferredWidth(150);
column = tableDownL.getColumnModel().getColumn(1);
column.setPreferredWidth(150);
column = tableDownL.getColumnModel().getColumn(2);
column.setPreferredWidth(80);
column = tableDownL.getColumnModel().getColumn(3);
column.setPreferredWidth(50);
column = tableDownL.getColumnModel().getColumn(4);
column.setPreferredWidth(50);
column = tableDownL.getColumnModel().getColumn(5);
column.setPreferredWidth(50);
scrollPaneDownL.add(tableDownL);
scrollPaneDownL.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPaneDownL.getViewport().setView(tableDownL);
//添加监听器
tableDownL.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListSelectionModel rowSML = tableDownL.getSelectionModel();
rowSML.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int row = tableDownL.getSelectedRow();
showAttributesInTableR(row);
repaint();
}
});
}
/**
* 根据右下左表格选择,在右下右表格显示对应项
*/
private void showAttributesInTableR(int selectedRow){
//初始化表格
String billid = tableDownL.getValueAt(selectedRow,0).toString();//获取VIPID值
Statement stmt = null;
ResultSet rs = null;
Statement stmt02 = null;
ResultSet rs02 = null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery("select BillID,GoodsID,cPrice,Discount,nCount,Points"
+" from BillDetail where BillID=" + "'" + billid + "'");
}
catch (SQLException ex) {
}
Vector row = new Vector();//行
Vector col = null;//列
//添加行列元素
try {
while (rs.next()) {
//从结果集中得到元素
String Mgoodsid = rs.getString("GoodsId");
String Mprice = rs.getString("cPrice");
String Mdiscount = rs.getString("Discount");
String Mcount = rs.getString("nCount");
String Mpoints = rs.getString("Points");
stmt02 = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs02 = stmt02.executeQuery("select GoodsName,sUnit"
+" from Goods where GoodsID=" + "'" + Mgoodsid + "'");
rs02.next();//取下一个才有意义
String Mgoodsname = rs02.getString("GoodsName");
String Munit = rs02.getString("sUnit");
rs02.close();
stmt02.close();
//将元素添加到表格中
col = new Vector();
col.add(Mgoodsid);
col.add(Mgoodsname);
col.add(Munit);
Double countDouble = Double.parseDouble(Mcount);//将数量转换为整型
int countInt = (int)countDouble.doubleValue();
col.add(countInt);
col.add(Mprice);
if(Mdiscount != null)//考虑Mdiscount可能为空的情况
col.add(Double.parseDouble(Mdiscount));
else
col.add(Mdiscount);
if(Mpoints != null)//考虑Mpoints可能为空的情况
col.add(Double.parseDouble(Mpoints));
else
col.add(Mpoints);
row.add(col);
}
}
catch (SQLException ex1) {
}
//表头列名字
Vector TableHeader = new Vector();
String[] Header = {"商品编号","商品名称","单位","数量","单价","折扣","积分"};
for(int i = 0; i < Header.length;i++){
TableHeader.add(Header[i]);
}
//创建表格
tmDownR = new DefaultTableModel(row,TableHeader);
tableDownR = new JTable(tmDownR);
//设置列宽度
tableDownR.setAutoResizeMode(0);
TableColumn column = null;
column = tableDownR.getColumnModel().getColumn(0);
column.setPreferredWidth(60);
column = tableDownR.getColumnModel().getColumn(1);
column.setPreferredWidth(150);
column = tableDownR.getColumnModel().getColumn(2);
column.setPreferredWidth(30);
column = tableDownR.getColumnModel().getColumn(3);
column.setPreferredWidth(30);
column = tableDownR.getColumnModel().getColumn(4);
column.setPreferredWidth(50);
column = tableDownR.getColumnModel().getColumn(5);
column.setPreferredWidth(50);
column = tableDownR.getColumnModel().getColumn(6);
column.setPreferredWidth(50);
scrollPaneDownR.add(tableDownR);
scrollPaneDownR.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPaneDownR.getViewport().setView(tableDownR);
}
/**
* 显示弹出菜单
*/
void this_mousePressed(MouseEvent e) {
int mods = e.getModifiers();
//鼠标右键
if((mods&InputEvent.BUTTON3_MASK)!=0){
//弹出菜单
popupMenu.show(this,e.getX(),e.getY());
repaint();
}
}
/**
* 显示弹出菜单
*/
void scrollPaneAbove_mousePressed(MouseEvent e) {
int mods = e.getModifiers();
//鼠标右键
if((mods&InputEvent.BUTTON3_MASK)!=0){
//弹出菜单
popupMenu.show(scrollPaneAbove,e.getX(),e.getY());
repaint();
}
}
/**
* 显示弹出菜单
*/
void tabAbove_mousePressed(MouseEvent e) {
int mods = e.getModifiers();
//鼠标右键
if((mods&InputEvent.BUTTON3_MASK)!=0){
//弹出菜单
popupMenu.show(tabAbove,e.getX(),e.getY());
repaint();
}
}
/**
* 显示弹出菜单
*/
void tableAbove_mousePressed(MouseEvent e) {
int mods = e.getModifiers();
//鼠标右键
if((mods&InputEvent.BUTTON3_MASK)!=0){
//弹出菜单
popupMenu.show(tableAbove,e.getX(),e.getY());
repaint();
}
}
/**
* 生成一个树结构
* @param top DefaultMutableTreeNode: 树的根结点
*/
private void createTree(DefaultMutableTreeNode top) {
DefaultMutableTreeNode node = null;
node = new DefaultMutableTreeNode("普通会员");
top.add(node);
node = new DefaultMutableTreeNode("包月会员");
top.add(node);
node = new DefaultMutableTreeNode("包年会员");
top.add(node);
node = new DefaultMutableTreeNode("银卡");
top.add(node);
node = new DefaultMutableTreeNode("金卡");
top.add(node);
node = new DefaultMutableTreeNode("百册卡");
top.add(node);
node = new DefaultMutableTreeNode("销售会员");
top.add(node);
node = new DefaultMutableTreeNode("全部会员");
top.add(node);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(new MemberPane());
frame.setSize(new Dimension(600,480));
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
class SimpleTreeSelectionListener implements TreeSelectionListener{
public void valueChanged(TreeSelectionEvent e) {
JTree tree = (JTree)e.getSource();
DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
String s = node.toString();
System.out.println(s);
initTables(s);
//右上表格
ImageIcon icon = new ImageIcon("images/middle.gif");
scrollPaneAbove.add(tableAbove);
scrollPaneAbove.setBorder(BorderFactory.createLoweredBevelBorder());
scrollPaneAbove.getViewport().setView(tableAbove);
tabAbove.addTab("会员信息", icon, scrollPaneAbove,"第一个卡片提示信息!");
tabAbove.setSelectedIndex(0);
//右上表格,添加弹出菜单
popupMenu = new MemberPopupMenu(tableAbove);
add(popupMenu);
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);
}
});
}
private void performTable(String s){
DefaultTableModel tm = (DefaultTableModel)tableAbove.getModel();
for(int i = 0;i < tm.getRowCount();i++ )
tm.removeRow(i);
tableAbove.removeAll();
tableAbove.repaint();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -