2017-11-27 14 views
0

javafxで質問があります。私はbibファイルで操作しているプロジェクトを持っています。私はテーブルビューにクラスデータ(エントリ)を挿入するときに問題に直面します。しかし、まだtableviewでは空です。操作は、名前を入力してbibファイルから検索し、その結果をテーブルビューに表示することです。 おかげ The gui imageJavafxテーブルビューにデータを挿入する方法

は、私はクラス

public class Entry implements Comparable<Entry>{ 
    public static final int ignoreOrder=-1; 
    public static final int OrderByName=0; 
    public static final int OrderByTitle=1; 
    public static final int OrderByYear=2; 
    private String name; 
    private String title=""; 
    private String year="0"; 
    private int order=OrderByName; 

    public int getOrder() { 
     return order; 
    } 
    public void setOrder(int order) { 
     this.order = order; 
    } 
    public Entry(String name){ 
     this.name=name; 
    } 
    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getTitle() { 
     return title; 
    } 
    public void setTitle(String title) { 

     this.title = title; 
    } 
    public String getYear() { 
     return year; 
    } 
    public void setYear(String year) { 
     this.year = year; 
    } 
} 

を持っているテーブルビューを記入し、それはまだ空。不足している唯一のことは、そうでない場合はあなたがルックアップする必要がありますがprivate SimpleStringProperty titleに例private String title;ためSimpleStringPropertyStringからすべてのフィールドを変更することができる場合、あなたは単に

Col_Title.setCellValueFactory(new PropertyValueFactory<Row, String>("title")); 

を追加することができますsetCellValueFactory

@FXML 
private TableView<Entry> table_id; 
@FXML 
private TableColumn<Entry, String> Col_BKey; 
@FXML 
private TableColumn<Entry, String> Col_counts; 
@FXML 
private TableColumn<Entry, String> Col_EntryType; 
@FXML 
private TableColumn<Entry, String> Col_Title; 
@FXML 
private TableColumn<Entry, String> Col_Year; 
@FXML 
private TableColumn<Entry, String> Col_Booktitle; 
@FXML 
private TableColumn<Entry, String> Col_Author; 




public void loadFile(ActionEvent event){ 
     int orderModel=0; 
     if(title_radio.isSelected()){ 
      orderModel=1; 
     }else if(year_radio.isSelected()){ 
      orderModel=2; 
     } 
     ReadingProcessor readingProcessor=new ReadingProcessor(new OrderedLinkedList(orderModel)); 
     entryList=readingProcessor.read(filePath); 
    } 

    public void SelectOKAction(ActionEvent event) { 

     String searchStr=select_text.getText(); 
     if(searchStr==null||searchStr.trim().equals("")){ 
      AlertBox.display("Wrong", "Please enter entry's name"); 
      return; 
     } 
     Entry entry=entryList.search(searchStr); 
     if(entry==null){//NOT FOOUND 
      AlertBox.display("Wrong", "Entry not exists!"); 
     } 

     ObservableList<Entry> list = FXCollections.observableArrayList(entry); 
     table_id.setItems(list); 

    } 
+0

あなたは単に空のリストを作成し、それをテーブルのバッキングリストとして設定しました。実際にデータを作成してリストに追加する場所はどこですか? –

+0

私の質問のコードを編集しました。私はbibファイルを読み、ファイルからエントリを検索するためにテキストに名前をタイプします。私はこのエントリをtableviewに挿入したいのですが、どうすればよいのか分かりません。ありがとう@James_D – JhihweiLi

答えて

0

より複雑な場合setCellValueFactory

関連する問題