2012-02-04 12 views
2

jgoodies Jtableバインディングの簡単な例は、Jgoodies Modelクラスを拡張しているjavabeansのリストをスイングして使用できますか。簡単な例は見つかりませんでした。 JTableは結合のためのアドバンスJgoodies JTable Binding、Swing

+3

「jgoodies jtable binding example」をグーグルで検索すると、これが見つかりました。http://www.java2s.com/Code/Java/Swing-Components/JGoodiesBindingAbstractTableModelExample.htm –

答えて

3

おかげで、あなたがたとえば、あなたのJTable

ためのTableModelを記述する必要がある、あなたは、このような

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

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

としてJava Beanを持つテーブルを作成し、

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)"を単に "else"に変更します。 – Nailgun

+0

MyTableModelコンストラクタに新しいSelectionInListオブジェクト(Listだけでなく)も渡す必要があります。 – Nailgun