Java Input Output System
import java.sql.*;
public class STiNA
{
private String indate;
private String client;
private String type;
private int count;
private String remark;
private String people;
private String outdate;
private ApplicationGUI gui;
private ApplicationData data;
public static void main(String[] args)
{
STiNA stina = new STiNA();
stina.initApplication();
}
public void initApplication()
{
indate = "";
client = "";
type = "";
count = 0;
remark = "";
people = "";
outdate = "";
data = new ApplicationData();
gui = new ApplicationGUI("STiNA信息管理系统", this);
}
public void addRecoard(String cmd)
{
data.insertData(cmd);
}
public ResultSet queryRecoard(String cmd)
{
return data.searchData(cmd);
}
public void updateRecoard(String cmd)
{
data.updateData(cmd);
}
protected void finalize()
{
data.finalize();
data = null;
gui = null;
}
}
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.util.Vector;
import java.sql.*;
class ApplicationGUI extends JFrame
{
JLabel label1;
JTextField date;
JLabel label2;
JTextField client;
JLabel label3;
JTextField type;
JLabel label4;
JTextField number;
JLabel label5;
JTextField remark;
JLabel label6;
JTextField people;
JButton enter;
JButton save;
JButton edit;
JTable table;
STiNA stina;
StinaTableModel stinatable;
QueryTableModel qtm;
OutTableModel otm;
JLabel label7;
JTextField indates;
JLabel label8;
JTextField clients;
JLabel label9;
JTextField types;
JLabel label10;
JTextField outdates;
JLabel label11;
JTextField sendCompanys;
JLabel label12;
JTextField sendNumbers;
JButton noOutSearch;
JButton alreadyOutSearch;
JLabel label13;
JTextField inputOutDate;
JLabel label14;
JLabel label16;
JTextField sendNumberin;
JTextField sendCompanyPeople;
JLabel label15;
JTextField telNumber;
JButton out;
JButton saveout;
JButton editout;
JTable searchTable;
JTable outTable;
int indexOfSearchTable;
public ApplicationGUI(String title, STiNA stina)
{
super(title);
this.stina = stina;
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setBounds(0, 0, 800, 600);
initGUI();
setVisible(true);
}
public void initGUI()
{
JTabbedPane tabPane = new JTabbedPane();
JPanel addpane = new JPanel();
JPanel seapane = new JPanel();
label1 = new JLabel("日期:");
date = new JTextField(6);
label2 = new JLabel("客户姓名:");
client = new JTextField(8);
label3 = new JLabel("型号:");
type = new JTextField(8);
label4 = new JLabel("数量:");
number = new JTextField(3);
label5 = new JLabel("备注:");
remark = new JTextField(12);
label6 = new JLabel("经手人:");
people = new JTextField(8);
enter = new JButton("确定");
enter.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
stinatable.setValues(date.getText(), client.getText(), type.getText(), number.getText(), remark.getText(), people.getText());
stinatable.fireTableDataChanged();
date.setText("");
client.setText("");
type.setText("");
number.setText("");
remark.setText("");
people.setText("");
}
});
save = new JButton("保存");
save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
Vector recoard;
for(int i = 0; i < stinatable.getRowCount(); i ++)
{
String cmd = "INSERT INTO weixiu (入库日期, 客户, 型号, 数量, 备注, 经手人)VALUES (";
String cmdend = ");";
recoard = stinatable.getRecoard(i);
for(int j = 0; j < stinatable.getColumnCount(); j ++)
cmd = cmd + "'" +(String)recoard.elementAt(j) + (((j + 1) == stinatable.getColumnCount()) ? "'" : "',");
cmd = cmd + cmdend;
System.out.println(cmd);
stina.addRecoard(cmd);
}
stinatable.clearData();
stinatable.fireTableDataChanged();
}
});
edit = new JButton("编辑");
edit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
int selectRecoard;
Vector editRecoard;
selectRecoard = table.getSelectedRow();
if(selectRecoard == -1) return;
editRecoard = stinatable.getRecoard(selectRecoard);
date.setText((String)editRecoard.elementAt(0));
client.setText((String)editRecoard.elementAt(1));
type.setText((String)editRecoard.elementAt(2));
number.setText((String)editRecoard.elementAt(3));
remark.setText((String)editRecoard.elementAt(4));
people.setText((String)editRecoard.elementAt(5));
stinatable.removeRecoard(selectRecoard);
stinatable.fireTableDataChanged();
}
});
table = new JTable(stinatable = new StinaTableModel());
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints constraints = new GridBagConstraints();
addpane.setLayout(gridbag);
constraints.gridx = constraints.gridy = 0;
constraints.anchor = constraints.WEST;
constraints.fill = constraints.NONE;
constraints.weightx = 1.0;
constraints.weighty = 1.0;
gridbag.setConstraints(label1, constraints);
addpane.add(label1);
constraints.gridx = 1;
constraints.weightx = 3.0;
gridbag.setConstraints(date, constraints);
addpane.add(date);
constraints.gridx = 2;
constraints.weightx = 1.0;
gridbag.setConstraints(label2, constraints);
addpane.add(label2);
constraints.gridx = 3;
constraints.weightx = 3.0;
gridbag.setConstraints(client, constraints);
addpane.add(client);
constraints.gridx = 5;
constraints.weightx = 5.0;
gridbag.setConstraints(enter, constraints);
addpane.add(enter);
constraints.gridx = 0;
constraints.gridy = 1;
constraints.weightx = 1.0;
gridbag.setConstraints(label3, constraints);
addpane.add(label3);
constraints.gridx = 1;
constraints.weightx = 3.0;
gridbag.setConstraints(type, constraints);
addpane.add(type);
constraints.gridx = 2;
constraints.weightx = 1.0;
gridbag.setConstraints(label4, constraints);
addpane.add(label4);
constraints.gridx = 3;
constraints.weightx = 3.0;
gridbag.setConstraints(number, constraints);
addpane.add(number);
constraints.gridx = 5;
constraints.weightx = 5.0;
gridbag.setConstraints(save, constraints);
addpane.add(save);
constraints.gridx = 0;
constraints.gridy = 2;
constraints.weightx = 1.0;
gridbag.setConstraints(label5, constraints);
addpane.add(label5);
constraints.gridx = 1;
constraints.weightx = 3.0;
gridbag.setConstraints(remark, constraints);
addpane.add(remark);
constraints.gridx = 2;
constraints.weightx = 1.0;
gridbag.setConstraints(label6, constraints);
addpane.add(label6);
constraints.gridx = 3;
constraints.weightx = 3.0;
gridbag.setConstraints(people, constraints);
addpane.add(people);
constraints.gridx = 5;
constraints.weightx = 5.0;
gridbag.setConstraints(edit, constraints);
addpane.add(edit);
constraints.gridwidth = constraints.gridheight = 6;
constraints.gridx = 0;
constraints.gridy = 3;
constraints.fill = constraints.BOTH;
constraints.weighty = 14;
JScrollPane jsp = new JScrollPane(table);
gridbag.setConstraints(jsp, constraints);
addpane.add(jsp);
label7 = new JLabel("入库日期:");
indates = new JTextField(6);
label8 = new JLabel("客户:");
clients = new JTextField(8);
label9 = new JLabel("型号:");
types = new JTextField(8);
label10 = new JLabel("出库日期:");
outdates = new JTextField(6);
label11 = new JLabel("发货公司(人):");
sendCompanys = new JTextField(12);
label12 = new JLabel("货运单号");
sendNumbers = new JTextField(6);
noOutSearch = new JButton("未出库记录查询");
noOutSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
ResultSet rest;
String cmd = "SELECT 入库日期, 客户, 型号, 数量, 备注, 经手人 FROM weixiu";
String insertCmd = "";
if(!indates.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + "入库日期 like '" + indates.getText() + "' ";
if(!clients.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 客户 like '" + clients.getText() + "' ";
if(!types.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 型号 like '" + types.getText() + "' ";
String endOfCmd = (insertCmd.equals("") ? " WHERE " : " AND ") + "出库日期 IS Null";
indates.setText("");
clients.setText("");
types.setText("");
cmd = cmd + insertCmd + endOfCmd;
System.out.println(cmd);
try{
rest = stina.queryRecoard(cmd);
//ResultSetMetaData rsmd = rest.getMetaData();
qtm.brushTable(rest);
//for(int i = 0; i < rsmd.getColumnCount(); i++)
// System.out.println(rsmd.getColumnLabel(i+1));
}catch(Exception e1){}
/* 测试用
try{rest.next();
for(int i = 1; i < 7; i ++)
System.out.print(rest.getString(i) + "/t");
}catch(Exception eb)
{}*/
qtm.fireTableStructureChanged();
inputOutDate.setEnabled(true);
sendCompanyPeople.setEnabled(true);
sendNumberin.setEnabled(true);
telNumber.setEnabled(true);
out.setEnabled(true);
saveout.setEnabled(true);
editout.setEnabled(true);
//System.out.println(cmd);
}
});
alreadyOutSearch = new JButton("已出库记录查询");
alreadyOutSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
ResultSet rest;
String cmd = "SELECT * FROM weixiu";
String insertCmd = "";
if(!indates.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + "入库日期 like '" + indates.getText() + "' ";
if(!clients.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 客户 like '" + clients.getText() + "' ";
if(!types.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 型号 like '" + types.getText() + "' ";
if(!outdates.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 出库日期 like '" + outdates.getText() + "' ";
if(!sendCompanys.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 发货公司 like '" + sendCompanys.getText() + "' ";
if(!sendNumbers.getText().equals(""))
insertCmd = insertCmd + (insertCmd.equals("") ? " WHERE " : " AND ") + " 货单号码 like '" + sendNumbers.getText() + "' ";
String endOfCmd = (insertCmd.equals("") ? " WHERE " : " AND ") + "出库日期 IS NOT Null";
indates.setText("");
clients.setText("");
types.setText("");
outdates.setText("");
sendCompanys.setText("");
sendNumbers.setText("");
cmd = cmd + insertCmd + endOfCmd;
System.out.println(cmd);
try{
rest = stina.queryRecoard(cmd);
//ResultSetMetaData rsmd = rest.getMetaData();
qtm.brushTable(rest);
//for(int i = 0; i < rsmd.getColumnCount(); i++)
// System.out.println(rsmd.getColumnLabel(i+1));
}catch(Exception e1){}
/* 测试用
try{rest.next();
for(int i = 1; i < 7; i ++)
System.out.print(rest.getString(i) + "/t");
}catch(Exception eb)
{}*/
qtm.fireTableStructureChanged();
inputOutDate.setEnabled(false);
sendCompanyPeople.setEnabled(false);
sendNumberin.setEnabled(false);
telNumber.setEnabled(false);
out.setEnabled(false);
saveout.setEnabled(false);
editout.setEnabled(false);
//System.out.println(cmd);
}
});
searchTable = new JTable(qtm = new QueryTableModel());
label13 = new JLabel("出库日期:");
inputOutDate = new JTextField(6);
inputOutDate.setEnabled(false);
label14 = new JLabel("发货公司(发货人):");
sendCompanyPeople = new JTextField(12);
sendCompanyPeople.setEnabled(false);
label15 = new JLabel("货运单号:");
sendNumberin = new JTextField(6);
sendNumberin.setEnabled(false);
label16 = new JLabel("联系电话:");
telNumber = new JTextField(6);
telNumber.setEnabled(false);
out = new JButton("出库");
out.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
Vector recoard;
if(searchTable.getSelectedRow() >= 0)
{
recoard = qtm.getRecoard(searchTable.getSelectedRow());
}
else {
JOptionPane.showMessageDialog(ApplicationGUI.this, "清选择未出库的记录!");
return;
}
if(inputOutDate.getText().equals("") || sendCompanyPeople.getText().equals("") || sendNumberin.getText().equals("") || telNumber.getText().equals("")) {
JOptionPane.showMessageDialog(ApplicationGUI.this, "清填写[出库日期]、[发货公司(发货人)]、[货运单号]、[联系电话]等内容!");
return;
}
else {
indexOfSearchTable = qtm.getRecoardIndex(recoard);
qtm.removeRecoard(recoard);
recoard.addElement(inputOutDate.getText());
recoard.addElement(sendCompanyPeople.getText());
recoard.addElement(sendNumberin.getText());
recoard.addElement(telNumber.getText());
inputOutDate.setText("");
sendCompanyPeople.setText("");
sendNumberin.setText("");
telNumber.setText("");
otm.addRecoard(recoard);
otm.fireTableDataChanged();
qtm.fireTableDataChanged();
}
}
});
out.setEnabled(false);
saveout = new JButton("保存");
saveout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
Vector recoard;
String cmd = "UPDATE weixiu SET ";
String insertCmd;
String filterCmd;
for(int i = 0; i < otm.getRowCount(); i ++)
{
insertCmd = "";
filterCmd = "";
recoard = otm.getRecoard(i);
insertCmd = "出库日期='" + (String)recoard.elementAt(6) + "' , 发货公司='" + (String)recoard.elementAt(7) + "' , 货单号码='" + (String)recoard.elementAt(8) + "' , 电话='" + (String)recoard.elementAt(9) + "' ";
filterCmd = "WHERE 入库日期='" + (String)recoard.elementAt(0) + "' AND 客户='" + (String)recoard.elementAt(1) + "' AND 型号='" + (String)recoard.elementAt(2) + "' AND 数量='" + (String)recoard.elementAt(3) + "' AND 备注='" + (String)recoard.elementAt(4) + "' AND 经手人='" + (String)recoard.elementAt(5) + "';";
cmd = cmd + insertCmd + filterCmd;
stina.updateRecoard(cmd);
System.out.println(cmd);
// stina.addRecoard(cmd);
}
//stina.updateRecoard("UPDATE weixiu SET 出库日期='100' , 发货公司='100' WHERE 入库日期='1'");
otm.clearData();
otm.fireTableDataChanged();
}
});
saveout.setEnabled(false);
editout = new JButton("编辑");
editout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
Vector recoard;
if(outTable.getSelectedRow() >= 0)
{
recoard = otm.getRecoard(outTable.getSelectedRow());
otm.removeRecoard(recoard);
otm.fireTableDataChanged();
telNumber.setText((String)recoard.elementAt(9));
recoard.remove(9);
sendNumberin.setText((String)recoard.elementAt(8));
recoard.remove(8);
sendCompanyPeople.setText((String)recoard.elementAt(7));
recoard.remove(7);
inputOutDate.setText((String)recoard.elementAt(6));
recoard.remove(6);
qtm.insertRecoard(recoard, indexOfSearchTable);
qtm.fireTableDataChanged();
}
}
});
editout.setEnabled(false);
outTable = new JTable(otm = new OutTableModel());
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
seapane.setLayout(gbl);
gbc.anchor = gbc.WEST;
gbc.gridx = gbc.gridy = 0;
gbc.gridheight = gbc.gridwidth = 1;
gbc.fill = gbc.HORIZONTAL;
gbl.setConstraints(label7, gbc);
seapane.add(label7);
gbc.gridx = 1;
gbl.setConstraints(indates, gbc);
seapane.add(indates);
gbc.gridx = 2;
gbl.setConstraints(label8, gbc);
seapane.add(label8);
gbc.gridx = 3;
gbl.setConstraints(clients, gbc);
seapane.add(clients);
gbc.gridx = 4;
gbl.setConstraints(label9, gbc);
seapane.add(label9);
gbc.gridx = 5;
gbl.setConstraints(types, gbc);
seapane.add(types);
gbc.gridx = 7;
gbc.gridwidth = 1;
gbc.fill = gbc.NONE;
gbc.anchor = gbc.CENTER;
gbl.setConstraints(noOutSearch, gbc);
seapane.add(noOutSearch);
gbc.fill = gbc.HORIZONTAL;
gbc.anchor = gbc.WEST;
gbc.gridwidth = 1;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.gridheight = 1;
gbl.setConstraints(label10, gbc);
seapane.add(label10);
gbc.gridx = 1;
gbl.setConstraints(outdates, gbc);
seapane.add(outdates);
gbc.gridx = 2;
gbl.setConstraints(label11, gbc);
seapane.add(label11);
gbc.gridx = 3;
gbl.setConstraints(sendCompanys, gbc);
seapane.add(sendCompanys);
gbc.gridx = 4;
gbl.setConstraints(label12, gbc);
seapane.add(label12);
gbc.gridx = 5;
gbl.setConstraints(sendNumbers, gbc);
seapane.add(sendNumbers);
gbc.gridx = 7;
gbc.gridheight = 1;
gbc.gridwidth = 1;
gbc.fill = gbc.NONE;
gbc.anchor = gbc.CENTER;
gbl.setConstraints(alreadyOutSearch, gbc);
seapane.add(alreadyOutSearch);
gbc.fill = gbc.BOTH;
gbc.anchor = gbc.WEST;
gbc.gridy = 2;
gbc.gridx = 0;
gbc.gridheight = 1;
gbc.gridwidth = 8; //gbc.REMAINDER;
gbc.weightx = gbc.weighty = 1.0;
JScrollPane jsp1 = new JScrollPane(searchTable);
gbl.setConstraints(jsp1, gbc);
seapane.add(jsp1);
gbc.weightx = gbc.weighty = 0.0;
gbc.gridy = 4;
gbc.gridx = 0;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbl.setConstraints(label13, gbc);
seapane.add(label13);
gbc.gridx = 1;
gbl.setConstraints(inputOutDate, gbc);
seapane.add(inputOutDate);
gbc.gridx = 2;
gbl.setConstraints(label14, gbc);
seapane.add(label14);
gbc.gridx = 3;
gbl.setConstraints(sendCompanyPeople, gbc);
seapane.add(sendCompanyPeople);
gbc.gridx = 4;
gbl.setConstraints(label15, gbc);
seapane.add(label15);
gbc.gridx = 5;
gbc.weightx = 0.2;
gbl.setConstraints(sendNumberin, gbc);
seapane.add(sendNumberin);
gbc.gridx = 6;
gbl.setConstraints(label16, gbc);
seapane.add(label16);
gbc.gridx = 7;
gbc.weightx = 0.1;
gbl.setConstraints(telNumber, gbc);
seapane.add(telNumber);
gbc.gridx = 1;
gbc.gridy = 5;
gbc.fill = gbc.NONE;
gbc.anchor = gbc.WEST;
gbl.setConstraints(out, gbc);
seapane.add(out);
gbc.gridx = 2;
gbl.setConstraints(saveout, gbc);
seapane.add(saveout);
gbc.gridx = 3;
gbl.setConstraints(editout, gbc);
seapane.add(editout);
JScrollPane jsp2 = new JScrollPane(outTable);
gbc.gridx = 0;
gbc.gridy = 7;
gbc.gridheight = 1;
gbc.gridwidth = 8;
gbc.fill = gbc.BOTH;
gbc.weightx = gbc.weighty = 1.0;
gbl.setConstraints(jsp2, gbc);
seapane.add(jsp2);
addpane.setBorder(new TitledBorder(new LineBorder(Color.GRAY), "数据录入"));
seapane.setBorder(new TitledBorder(new LineBorder(Color.GRAY), "数据查询[出库]"));
tabPane.add("入库记录", addpane);
tabPane.add("检索记录(出库)", seapane);
Container container = getContentPane();
container.add(tabPane);
}
}
import java.sql.*;
class ApplicationData
{
Connection con;
Statement statement;
ResultSet result;
int operationCount;
public ApplicationData()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(Exception e)
{
System.err.println("载入驱动程序出错!");
System.exit(1);
}
String sourceURL = "jdbc:odbc:input";
try{
con = DriverManager.getConnection(sourceURL);
statement = con.createStatement();
}catch(Exception e)
{
System.err.println("建立数据库连接出错!");
System.exit(1);
}
}
public int insertData(String cmd)
{
try{
operationCount = statement.executeUpdate(cmd);
}catch(Exception e)
{
System.err.println("入库操作出错!");
System.exit(1);
}finally{
return operationCount;
}
}
public int updateData(String cmd)
{
try{
operationCount = statement.executeUpdate(cmd);
}catch(Exception e)
{
System.err.println("出库操作出错!");
System.exit(1);
}
finally{
return operationCount;
}
}
public ResultSet searchData(String cmd)
{
try{
result = statement.executeQuery(cmd);
}catch(Exception e)
{
System.err.println("查询操作出错!");
System.exit(1);
}finally{
return result;
}
}
protected void finalize()
{
try{
statement.close();
con.close();
System.out.println("数据库正常关闭!");
}catch(Exception e)
{
System.err.println("数据库关闭出错!");
}
}
/*public void closeConnection()
{
try{
con.close();
System.out.println("数据库连接正常关闭!程序退出。");
}catch(Exception e)
{
System.err.println("关闭连接出错!");
System.exit(1);
}
}*/
}
import javax.swing.table.*;
import java.util.*;
public class StinaTableModel extends AbstractTableModel
{
String[] columnHeaders = {"入库日期", "客户", "型号", "数量", "备注", "经手人"};
Vector clumnNames = new Vector(7);
Vector dataValues = new Vector(1);
public StinaTableModel()
{
for(int i = 0; i < columnHeaders.length; i ++)
clumnNames.addElement(columnHeaders[i]);
}
public int getColumnCount()
{
return clumnNames.size();
}
public int getRowCount()
{
return dataValues.size();
}
public Object getValueAt(int row, int column)
{
Vector recVector = (Vector)dataValues.elementAt(row);
return recVector.elementAt(column);
}
public String getColumnName(int column)
{
return (String)clumnNames.elementAt(column);
}
public void setValues(String indate, String client, String type, String number, String remark, String people)
{
Vector recVector = new Vector(6);
recVector.addElement(indate);
recVector.addElement(client);
recVector.addElement(type);
recVector.addElement(number);
recVector.addElement(remark);
recVector.addElement(people);
dataValues.addElement(recVector);
}
public void clearData()
{
dataValues = new Vector();
}
public Vector getRecoard(int row)
{
return (Vector)dataValues.elementAt(row);
}
public void removeRecoard(int row)
{
dataValues.remove(row);
}
}
import java.util.*;
import javax.swing.table.*;
import java.sql.*;
public class QueryTableModel extends AbstractTableModel{
private Vector columnHeaders;
private Vector dataValues;
public QueryTableModel()
{
columnHeaders = new Vector();
dataValues = new Vector();
}
public int getColumnCount()
{
return columnHeaders.size();
}
public int getRowCount()
{
return dataValues.size();
}
public Object getValueAt(int row, int column)
{
Vector recoard = (Vector) dataValues.elementAt(row);
return recoard.elementAt(column);
}
public void brushTable(ResultSet rest)
{
try{
dataValues.removeAllElements();
columnHeaders.removeAllElements();
fireTableStructureChanged();
Vector recoard;
ResultSetMetaData rsmd = rest.getMetaData();
columnHeaders = new Vector(rsmd.getColumnCount());
for(int i = 1; i <= rsmd.getColumnCount(); i ++)
{
columnHeaders.addElement(rsmd.getColumnName(i));
}
while(rest.next())
{
recoard = new Vector(columnHeaders.size());
for(int i = 1; i <= rsmd.getColumnCount(); i ++)
recoard.addElement(rest.getString(i));
dataValues.addElement(recoard);
}
}catch(Exception e)
{
System.err.println("更新查询数据表错误!");
System.exit(1);
}
System.out.println("查询结果为:" + columnHeaders.size() + "列");
System.out.println("查询结果有:"+dataValues.size()+"行");
}
public String getColumnName(int column)
{
return (String)columnHeaders.elementAt(column);
}
public Vector getRecoard(int row)
{
return (Vector)dataValues.elementAt(row);
}
public void removeRecoard(Vector rec)
{
dataValues.removeElement(rec);
}
public int getRecoardIndex(Vector rec)
{
return dataValues.indexOf(rec);
}
public void insertRecoard(Vector rec, int index)
{
dataValues.insertElementAt(rec, index);
}
}
import java.util.*;
import javax.swing.table.*;
import java.sql.*;
public class OutTableModel extends AbstractTableModel {
private Vector dataValues;
private String[] columnNames = {"入库日期", "客户", "型号", "数量", "备注", "经手人", "出库日期", "发货公司", "货单号码", "电话"};
public OutTableModel()
{
dataValues = new Vector();
}
public int getColumnCount()
{
return columnNames.length;
}
public int getRowCount()
{
return dataValues.size();
}
public Object getValueAt(int row, int column)
{
Vector recoard = (Vector) dataValues.elementAt(row);
return recoard.elementAt(column);
}
public String getColumnName(int column)
{
return columnNames[column];
}
public Vector getRecoard(int row)
{
return (Vector)dataValues.elementAt(row);
}
public void addRecoard(Vector rec)
{
dataValues.addElement(rec);
}
public void removeRecoard(Vector rec)
{
dataValues.removeElement(rec);
}
public void clearData()
{
dataValues = null;
dataValues = new Vector();
}
}