📄 tablevalues.java
字号:
package boco.DBManager.Tree;//******************************************************************************//:功能:TableValues及相关函数//:时间:2002-07//:作者:王建宾//:特殊描述::test:为DEBUG时启用//:程序描述:////******************************************************************************import java.util.*;import java.awt.*;import javax.swing.*;import javax.swing.tree.*;import javax.swing.table.*;import javax.swing.border.*;import java.sql.*;import javax.swing.table.AbstractTableModel;import javax.swing.event.TableModelEvent;import boco.shabank.dbconnection.*;//****************************************************************************//类名称:表格值模板//类功能:完成数据表格的值的显示//****************************************************************************public class TableValues extends AbstractTableModel { Vector KeyAt; Vector KeyType; String sql; String errMsg; int columnSize; Object temp; Vector columnNames=new Vector(); Vector columnType=new Vector(); public Vector values=new Vector(); DBConnectionAny objDBConnection;//******************************************************************************//方法名称:构造函数//方法功能://****************************************************************************** public TableValues() { } //TableValues的值设定 public TableValues(TreePath pathnode,DefaultMutableTreeNode node,Vector Key,boolean isInp,String SqlStm) { //初始化定义 int j=0; int ColNums=0; KeyAt=new Vector(); KeyType=new Vector(); columnSize=0; temp=null; sql = ""; errMsg = "success"; Vector tmpNull = new Vector(); ChineseTransfer A2C = new ChineseTransfer(); String URLName = pathnode.getPathComponent(1).toString(); //:test:System.out.println("URLName="+URLName); String TableName = node.toString(); //:test:System.out.println("TableName="+TableName); if(isInp){ sql = SqlStm; //+" order by " + Key; } else{ if(Key.size()>0) sql = "select * from " + TableName + " order by " + Key.elementAt(0); else sql = "select * from " + TableName; } //:test:System.out.println("sql:"+sql); Connection m_Connection; DBAccess db; //:test:System.out.println("The url:"+URLName); db =new DBAccess(URLName); objDBConnection=objDBConnection.getInstance() ; //连接数据源 try{ m_Connection = objDBConnection.getConnection(URLName) ; ResultSet rs=db.executeQuery(m_Connection,sql); ResultSetMetaData rsmd=rs.getMetaData(); ColNums = rsmd.getColumnCount(); //:test:System.out.println("Count:"+ColNums); //取得数据表列值与关键字 for(int i=1;i<=ColNums;i++){ columnType.addElement(rsmd.getColumnTypeName(i)); columnNames.addElement(rsmd.getColumnName(i)); } //:test:System.out.println("columnType:"+columnType); //:test:System.out.println("column:"+columnNames); //:test:System.out.println("the size:"+Key.size()); for(int at=0;at<Key.size();at++){ for(int i=1;i<=ColNums;i++){ if((Key.elementAt(at).toString().trim()).equalsIgnoreCase(rsmd.getColumnName(i))){ KeyAt.addElement(Integer.toString(i-1)); KeyType.addElement(rsmd.getColumnTypeName(i)); } } } //:test:System.out.println("tvKeyAt:"+KeyAt); //:test:System.out.println("tvKeyType:"+KeyType); //置值给TableValues while(rs.next()){ Vector Vtemp = new Vector(); for(j=0;j<ColNums;j++){ //:test:System.out.println("Column=" + (j+1)); //:test:System.out.println("StringValue=" + rs.getString(j+1)); //处理空值与中文转换 //if(URLName.equals("sybaccess")){ // if(rs.getString(j+1)==null||rs.getString(j+1).trim().equals("null")) // Vtemp.addElement(""); //else // Vtemp.addElement(rs.getString(j+1)); //} //else{ if(rs.getString(j+1)==null||rs.getString(j+1).trim().equals("null")) Vtemp.addElement(""); else Vtemp.addElement(A2C.AsciiToChineseString(rs.getString(j+1))); //} } values.addElement(Vtemp); } //新增一空行,为增加一行时准备 for(int i=1;i<=ColNums;i++){ tmpNull.addElement(""); } values.addElement(tmpNull); //关闭连接,释放资源 rs.close(); objDBConnection.freeConnection(URLName,m_Connection) ; } catch(Exception ex){ errMsg = ex.getMessage(); System.out.println("message="+ex.getMessage()) ; } }//******************************************************************************//方法名称:取得关键字所在列数//方法功能:返回关键字所在列数//****************************************************************************** public Vector getKeyAt(){ return KeyAt; }//******************************************************************************//方法名称:取得关键字数据类型//方法功能:返回关键字数据类型//****************************************************************************** public Vector getKeyType(){ return KeyType; }//******************************************************************************//方法名称:取得表格列数目//方法功能:显示表格的时候,返回表格的列数目//****************************************************************************** public int getColumnCount() { if(values.size()>0){ columnSize=((Vector)values.elementAt(0)).size(); //:test:System.out.println(columnSize); } return columnSize; }//******************************************************************************//方法名称:取得表格指定行列的值//方法功能:显示表格的时候,返回表格的指定行列的数值//****************************************************************************** public Object getValueAt(int row, int column) { if(values.size()>0){ temp=((Vector)values.elementAt(row)).elementAt(column); } return temp; }//******************************************************************************//方法名称:取得表格行数//方法功能:显示表格的时候,返回表格行数//****************************************************************************** public int getRowCount() { //:test:System.out.println(values.size()); return values.size(); }//******************************************************************************//方法名称:取得指定列的名称//方法功能:显示表格的时候,返回指定列的名称//****************************************************************************** public String getColumnName(int column){ return columnNames.elementAt(column).toString(); }//******************************************************************************//方法名称:取得指定所有列的名称//方法功能:显示表格的时候,返回所有列的名称//****************************************************************************** public Vector getAllColumnName(){ return columnNames; }//******************************************************************************//方法名称:取得指定所有列类型的名称//方法功能:显示表格的时候,返回所有列类型的名称//****************************************************************************** public Vector getAllColumnTypeName(){ return columnType; }//******************************************************************************//方法名称:取得指定列的类型名称//方法功能:显示表格的时候,返回指定列类型的名称//****************************************************************************** public String getColumnTypeName(int column){ return columnType.elementAt(column).toString(); }//******************************************************************************//方法名称:判断指定行列是否可以编辑//方法功能:显示表格的时候,判断指定行列是否可以编辑//****************************************************************************** public boolean isCellEditable(int row,int column){ return true; }//******************************************************************************//方法名称:删除当前行//方法功能:删除相应的Value,显示//****************************************************************************** public void removeTableRows(int rows){ values.removeElementAt(rows); this.fireTableDataChanged(); }//******************************************************************************//方法名称:取得返回信息//方法功能://****************************************************************************** public String getErrMsg() { if(errMsg==null) errMsg="success"; return errMsg; }//******************************************************************************//方法名称:编辑当前行//方法功能:根据当前行及行值设新值并刷新//****************************************************************************** public void updateTableRows(int rows,Vector value){ values.setElementAt(value,rows); //:test:System.out.println("Object is:" + values); this.fireTableDataChanged(); }//******************************************************************************//方法名称:新增一行//方法功能:插一行空值//****************************************************************************** public void addTableRows(){ Vector vtmp = new Vector(); for(int i=0;i<getColumnCount();i++){ vtmp.addElement("") ; } values.addElement(vtmp) ; this.fireTableDataChanged() ; }//******************************************************************************//方法名称:设定指定行列的值//方法功能:根据输入的参数设定指定行列的值//****************************************************************************** public void setValueAt(Object value,int rows,int cols){ ((Vector)values.elementAt(rows)).setElementAt(value,cols); //:test:System.out.println("Object is:" + values); this.fireTableDataChanged(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -