2012-02-04 80 views
2

任何人都可以提供jgoodies Jtable绑定简单的例子使用swing获取javabeans的列表扩展Jgoodies Model class.I找不到一个简单的例子。Jgoodies JTable Binding,Swing

由于提前

+3

通过只用谷歌搜索“jgoodies jtable绑定示例”,我发现这个:http://www.java2s.com/Code/Java/Swing-Components/JGoodiesBindingAbstractTableModelExample.htm。 – 2012-02-04 07:24:40

回答

3

要让JTable绑定,你需要写一TableModel的为您的JTable

例如,你有一个Java bean如

public class Employee { 
    private String employeeName; 
    private String employeeNumber; 

    // And the getters and setters for both the variables 
} 

创建一个表,

List <Employee> myList = new ArrayList<Employee>(); 
// add few Employee objects to this list and pass it into MyTableModel class 
Jtable t1 = new Jtable(); 
t1.setModel(new MyTableModel(myList)); 

MyTableModel类将列表作为参数,它会延长com.jgoodies.binding.adapter.AbstractTableAdapter

MyTableModel.java

public class MyTableModel extends AbstractTableAdapter<Employee> { 

SelectionInList<Employee> listModel = new SelectionInList<Employee>(); 

    public SourceCodeFolderTableAdapter(SelectionInList<Employee> listModel) { 
    super(listModel, new String [] {"Employee Name","Employee Number"}); 
    this.listModel = listModel; 
    } 

    @Override 
public Object getValueAt(int rowIndex, int columnIndex) { 
    Employee emp = (Employee) getRow(rowIndex); 
    if (columnIndex == 0) { 
     return emp.getEmployeeName(); 
    } else if (columnIndex == 1) { 
     return emp.getEmployeeNumber(); 
    } 
} 

} 

希望这有助于。

+0

这段代码不会编译。 Chenge“else if(columnIndex == 1)”to“else”。 – Nailgun 2012-09-13 11:15:29

+0

另外一个新的SelectionInList对象(不仅仅是List)应该被传递给MyTableModel构造函数。 – Nailgun 2012-09-13 13:11:49