Как установить элементы таблицы внутри другого класса JavaFX - PullRequest
0 голосов
/ 01 мая 2020

Надеюсь, вы здоровы.

Я разрабатывал проект для своей школы, и мне нужно было использовать 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");
        }


    }
}

Что мне делать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...