2017-06-04 3 views
0

このクラスを使用してtableview javafxに項目を追加しますが、ファイルの最後の行をtableviewに追加するだけです。
このクラスのObservableListを使用します
この問題を解決するにはどうすればよいですか?どのようにアイテムをTableViewにループでファイルから追加するのですか

public class MyTicket { 
String name; 
@FXML 
private Button back;  
@FXML 
private TableView<ShowTicket> table;  
@FXML 
private TableColumn<ShowTicket, String> origin; 
@FXML 
private TableColumn<ShowTicket, String> goal;  
@FXML 
private TableColumn<ShowTicket, String> date;  
public void addName(String userName){ 
    name= userName; 
} 
public void adddata(){  
    String originFile= name + "\\" +name + "origin" + ".txt"; 
    String goalFile= name + "\\" +name + "goal" + ".txt"; 
    String dateFile= name + "\\" +name + "date" + ".txt";  
     try {   
      BufferedReader inputOrigin= new BufferedReader(new FileReader(originFile)); 
      BufferedReader inputGoal= new BufferedReader(new FileReader(goalFile)); 
      BufferedReader inputDate= new BufferedReader(new FileReader(dateFile)); 
      String line1= inputOrigin.readLine(); 
      String line2= inputGoal.readLine(); 
      String line3= inputDate.readLine(); 
      ArrayList<String> or= new ArrayList<>(); 
      ArrayList<String> go= new ArrayList<>(); 
      ArrayList<String> da= new ArrayList<>(); 
      while(line1 != null){     
       or.add(line1); 
       go.add(line2); 
       da.add(line3);     
       line1= inputOrigin.readLine(); 
       line2= inputGoal.readLine(); 
       line3= inputDate.readLine(); 
      } 
      int i= or.size();    
      for(int j=0; j<i; j++){     
       ObservableList<ShowTicket> contactList= FXCollections.observableArrayList(
         new ShowTicket(or.get(j), go.get(j), da.get(j))); 
       table.setItems(contactList); 
       origin.setCellValueFactory(new PropertyValueFactory<>("firstName")); 
       goal.setCellValueFactory(new PropertyValueFactory<>("lastName")); 
       date.setCellValueFactory(new PropertyValueFactory<>("cellPhone")); 
      }        
       inputOrigin.close(); 
       inputGoal.close(); 
       inputDate.close(); 
     } 
     catch (FileNotFoundException e){     
      e.printStackTrace(); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
}//adddata 

私ShowTicketクラス:

http://textuploader.com/d0a3e

答えて

0

私は、テーブルビューのJavaFXが、それは単にテーブルビューにファイルの 最後の行を追加するための項目を追加するには、このクラスを使用します。

あなたが各繰り返しでTableViewオブジェクトのプロパティitemsの値を上書きするよう期待されている:

for(int j=0; j<i; j++){     
    ... 
    ObservableList<ShowTicket> contactList= FXCollections.observableArrayList(
         new ShowTicket(or.get(j), go.get(j), da.get(j))); 
    table.setItems(contactList); 
    ... 
} 

あなたはむしろ、すべての行のShowTicketが含まれているcontactListオブジェクトを作成する必要があります。

ObservableList<ShowTicket> contactList = FXCollections.observableArrayList(); 
for(int j=0; j<i; j++){       ... 
    contactList.addAll(FXCollections.observableArrayList(
         new ShowTicket(or.get(j), go.get(j), da.get(j)));  
} 

その後、あなたはtable.setItems(contactList);を呼び出すことができます。

+0

これは本当ですか? :http://textuploader.com/d05fsしかし、それは仕事ではありません。 –

関連する問題