客户资料填加资料,欲在该界面中输入详细客户资料
包括客户名称,联系方式等,以及客户购买的产品信息
如何处理用户输入产品信息之后生成产品对象?
客户资料已经可以处理,就是不知道如何实现表格处理
另外还想将机器型号,购买途径,安装人员设定为下拉菜单以供选择
菜单具体内容通过数据库获得,源代码见附件class MachineTableModel extends AbstractTableModel{
/**
 * 
 */
private static final long serialVersionUID = 1L;
Object[][] data= new String[5][6];
Object[] column= new String[]{"机器型号","机身号码","购买途径","购买时间","安装人员","安装时间"};
public MachineTableModel(){
addTableModelListener(new MachineTableModelListener());
}
public int getRowCount(){
return data.length;
}

public int getColumnCount(){
return column.length;
}

public String getColumnName(int i){
return column[i].toString();
} public Object getValueAt(int row, int col) {
return data[row][col];
}

public void setValueAt(Object object, int row, int col){
data[row][col]= object;
fireTableDataChanged();
}

public boolean isCellEditable(int i, int j){
return true;
}

class MachineTableModelListener implements TableModelListener{
public void tableChanged(TableModelEvent e) {
for(int i= 0; i< data.length; i++){
for(int j= 0; j< data[0].length; j++){
System.out.println(data[i][j]);
}
}
}
}
}
Machine类源码如下:
public class Machine {
private String index;
private String name, sn;
private String buy_from, buy_date;
private String install, in_date;
public Machine(){

}

public Machine(String name){
this.name= name;
}

public Machine(String name, String sn){
this.name= name;
this.sn= sn;
}
        public boolean add(){
boolean flag= false;
String sql= "INSERT INTO machine(name, sn, buy_from, buy_date, install, in_date) VALUES('"+ name+ "','"+ sn + "','"+ buy_from + "','"+ buy_date + "','"+ install+ "','"+ in_date+ "');";
DbConnect dbConn= new DbConnect();
try{
    int i= dbConn.executeUpdate(sql);
    if(i!= 0){
     flag= true;
    }
}catch(Exception ex){
ex.printStackTrace();
}finally{
dbConn.close();
}
return flag;
}
}

解决方案 »

  1.   

    改写你的表格模型:class   MachineTableModel   extends   AbstractTableModel{ 
    /** 
      *   
      */ 
    private   static   final   long   serialVersionUID   =   1L; java.util.ArrayList<Machine> mList=new java.util.Arraylist<Machine>();
    Object[]   column=   new   String[]{"机器型号","机身号码","购买途径","购买时间","安装人员","安装时间"}; 
    public   MachineTableModel(){ 
    addTableModelListener(new   MachineTableModelListener()); 

    public   int   getRowCount(){ 
    return   mList.size(); 
    } public   int   getColumnCount(){ 
    return column.legnth;
    } public   String   getColumnName(int   i){
        return column[i];
    } public   Object   getValueAt(int   row,   int   col)   { 
        Machine m=mList.get(row);
        if(i==0)
            return m.getIndex();
        else if(i==1)
            return m.getName();
        ...

    } public   void   setValueAt(Object   object,   int   row,   int   col){ 
    Machine m=mList.get(row);
        if(i==0)
            m.setIndex(object);
        else if(i==1)
            m.setName(object);
        ...
    fireTableDataChanged(); 
    } public   boolean   isCellEditable(int   i,   int   j){ 
    return   true; 
    } class   MachineTableModelListener   implements   TableModelListener{ 
    public   void   tableChanged(TableModelEvent   e)   { 
    for(Machine m: mList){ 
    for(int   j=   0;   j <   column.length;   j++){ 
    if(i==0)
            System.out.print(m.getIndex()+"\t");
        else if(i==1)
            System.out.print(m.getName()+"\t");
        ...

    System.out.println();




      

  2.   

    那些HTML代码去掉,我原以为在代码中也可以加上的。
      

  3.   

    另外还想将机器型号,购买途径,安装人员设定为下拉菜单以供选择 这个很简单,只需要设置这些列的编辑器为下拉框即可。eg:JComboBox box = new JComboBox();
    List list = 查询数据库;
    for(Object o: list) {
      box.addItem(o);
    }TableColumn column = table.getColumn("机器型号");
    column.setCellEditor(new DefaultCellEditor(box));
    ...
      

  4.   

    非常感谢你们的帮助,将AbstractTableModel更改后
    图形界面如图所示,没有出现空白表格等待用户输入
    这个如何去改啊?