Надеюсь, вы здоровы.
Я разрабатывал проект для своей школы, и мне нужно было использовать Table в моем проекте. Я создал класс, который включает в себя Table, и я установил все его свойства и поместил внутри панели. Оно работает. Я также создал файловый класс, который читает из файла и получает значение, которое я ищу. Тем не менее, когда я устанавливаю элементы таблицы в другом классе, который создан для поиска, он не отображается на экране, когда я показываю таблицу. Что мне делать?
Это класс таблицы
package application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class TableClass extends TableView<Book>{
public TableView<Book> table;
public String name,writer,type;
int id;
public TableClass(){
TableColumn<Book,String> nameColumn = new TableColumn<>("Name");
nameColumn.setMinWidth(200);
nameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
TableColumn<Book,String> authorColumn = new TableColumn<>("Author");
authorColumn.setMinWidth(200);
authorColumn.setCellValueFactory(new PropertyValueFactory<>("writer"));
TableColumn<Book,String> typeColumn = new TableColumn<>("Type");
typeColumn.setMinWidth(200);
typeColumn.setCellValueFactory(new PropertyValueFactory<>("type"));
TableColumn<Book, Integer> idColumn = new TableColumn<>("ID");
idColumn.setMinWidth(200);
idColumn.setCellValueFactory(new PropertyValueFactory<>("id"));
table = new TableView<Book>();
table.getColumns().addAll(nameColumn,authorColumn,typeColumn,idColumn);
}
public ObservableList<Book> getBook(String name, String writer, String type, int id){
ObservableList<Book> books = FXCollections.observableArrayList();
books.add(new Book(name,writer,type,id));
return books;
}
}
Это класс считывателя
package application;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class SearchWithBook extends AddBookPage{
public int calculatornumber;
public String bkname,bkwriter,bktype;
public int bkid;
TableClass table = new TableClass();
public void calculator() {
Scanner scan = new Scanner(System.in);
ArrayList<Object> calculator = new ArrayList<>();
File myfile = new File("Books.txt");
try {
Scanner readertwo = new Scanner(myfile);
while(readertwo.hasNext()) {
calculator.add(readertwo.nextLine());
}
readertwo.close();
calculatornumber = calculator.size();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public void read(String name) {
calculator();
int cal = 0;
File myfile = new File("Books.txt");
try{
Book mybook = new Book();
Scanner reader = new Scanner(myfile);
while(reader.hasNext()) {
for(int i=0; i<calculatornumber; i++) {
bkname = reader.next();
bkwriter = reader.next();
bktype = reader.next();
bkid = reader.nextInt();
// mybook.setName(reader.next());
// mybook.setWriter(reader.next());
// mybook.setType(reader.next());
// mybook.setID(reader.nextInt());
// booksarray.add(mybook);
//if(name.equals(((Book)booksarray.get(i)).getName())){
if(name.equals(bkname)) {
//System.out.println(((Book)booksarray.get(i)).allProperties());
table.setItems(table.getBook(bkname, bkwriter, bktype, bkid));
System.out.println(bkname+bkwriter+bktype+bkid);
cal++;
}
}
if(cal==0) {
System.out.println("The book couldn't be found");
}
}
reader.close();
}catch(Exception e) {
System.out.println("File is already existed");
}
}
}
Что мне делать?