2016-09-07 3 views
-1

저는 Tableview를 처음 사용하고 JavaFx에서 사용자 정의했습니다. 나는 많은 튜토리얼을 거쳤고, 일부는 이해했지만, 내 테이블에 행을 추가하는 것에 집착했다. JavaFx에 간단한 행 추가 tableView

for (int i = 0 ; i <= columnlist.size()-1 ; i++){ 
TableView col = new TableView(columnlist.get(i)); 
Table1.getColumns().add(col); 
} 

지금 어떻게이에 행을 추가 할 수 있습니다 예를 들어, 나는 테이블 내가 열 ArrayList와 생성 할 수 있습니다 내 이해에 따르면 Table 1를 불렀다? 나는 다른 예제들을 살펴 보았으므로 당신이 나에게 아주 간단한 예제를 줄 수는 있지만, 그들은 너무 복잡했다. 감사합니다.

+0

'Table1.getItems()'는 행을 추가 할 수있는 곳입니다. – assylias

+0

'TableView'을'TableView' 열로 사용할 수 없습니다. – fabian

답변

1

이런 식으로 컬럼을 만들 수는 없습니다. TableView 생성자는 ObservableList을 매개 변수로 사용하지만 테이블 값, 즉 행을 찾을 것으로 예상합니다.

테이블에 항목을 추가하는 일반적인 방법이 없기 때문에 각 테이블이 데이터 모델에 다소 결합되어 있기 때문에 두려워합니다. 표시하고자하는 클래스가 Person이라고 가정 해 보겠습니다.

public class Person { 
    private String name; 
    private String surname; 

    public Person(String name, String surname) { 
     this.name = name; 
     this.surname = surname; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getSurname() { 
     return surname; 
    } 
} 

이렇게하려면 테이블과 두 개의 열을 만들어야합니다. PropertyValueFactory은 개체에서 필요한 데이터를 가져 오지만 필드에 표준 명명 규칙 (getName(), getSurname() 등)을 따르는 접근 메서드가 있는지 확인해야합니다. 그렇지 않으면 작동하지 않습니다.

TableView tab = new TableView(); 

TableColumn nameColumn = new TableColumn("Name"); 
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name")); 

TableColumn surnameColumn = new TableColumn("Surname"); 
surnameColumn.setCellValueFactory(new PropertyValueFactory<>("surname")); 

tab.getColumns().addAll(nameColumn, surnameColumn); 

지금 당신이 할 일은 당신의 Person 개체를 만들고 테이블 항목에 추가하는 것입니다.

Person person = new Person("John", "Doe"); 
tab.getItems().add(person);