Имеется файл txt с содержимым, как сделать так что бы содержимое этого файла отображалось в таблице (tableView)?
//....класс AircraftOverviewController
package ch.makery.address.view;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.transformation.FilteredList;
import javafx.collections.transformation.SortedList;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.effect.BlendMode;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import ch.makery.address.MainApp;
import ch.makery.address.model.Aircraft;
public class AircraftOverviewController {
//подключение обектов интерфейса
@FXML
private TextField filterField;
@FXML
public WebView webSVG;
@FXML
public WebView flySVG;
@FXML
private TableView<Aircraft> personTable;
@FXML
private TableColumn<Aircraft, String> ModelColumn;
@FXML
private TableColumn<Aircraft, String> TypeColumn;
@FXML
private TableColumn<Aircraft, String> RangeColumn;
@FXML
private Button delitely;
@FXML
private Button edictory;
@FXML
private Button newland;
@FXML
private Label modelLabel;
@FXML
private Label typeLabel;
@FXML
private Label rangeLabel;
@FXML
private Label roominessLabel;
@FXML
private Label capacityLabel;
@FXML
private Label airlineLabel;
@FXML
private Label fuelRateLabel;
private MainApp mainApp;
/**
* Данные, в виде наблюдаемого списка адресатов.
*/
public static ObservableList<Aircraft> aircraftData = FXCollections.observableArrayList();
public static FilteredList<Aircraft> filteredData = new FilteredList<>(aircraftData, p -> true);
public static SortedList<Aircraft> sortedData = new SortedList<>(filteredData);
/**
Конструктор для обекта Person, добавляем некоторые данные.
*/
public AircraftOverviewController() {
aircraftData.add(new Aircraft("Airbus A319-100", "пассажирский","(6850-7750)км","236 мест","75,500кг","Austrian Airlines","2600 кг/ч"));
aircraftData.add(new Aircraft("Boeing 737-100", "пассажирский","(2592-3518)км","103 мест","43,998кг","China Eastern Airlines","2800 кг/ч"));
aircraftData.add(new Aircraft("Иркут MC-21", "пассажирский","(5400-6400)км","132 мест","72,560кг","Red Wings Airlines","3700 кг/ч"));
aircraftData.add(new Aircraft("Comac C919", "пассажирский","(3425-4075)км","156 мест","77,310кг","Windrose Airline","3460 кг/ч"));
aircraftData.add(new Aircraft("Embraer E-170", "пассажирский","(2100-3900)км","80 мест","37,200кг","Smart Wings","1850 кг/ч"));
aircraftData.add(new Aircraft("Douglas DC-8", "пассажирский","(6300-7410)км","439 мест","140,600кг","SmartLynx Airlines Estonia","14500 кг/ч"));
aircraftData.add(new Aircraft("Shanghai Y-10", "пассажирский","(7750-8300)км","178 мест","110,227кг","China Eastern Airlines","3700 кг/ч"));
aircraftData.add(new Aircraft("Ан-124-100", "грузовой","(4800-15700)км","1050 м3","402,000кг","NORDICA","12600 кг/ч"));
aircraftData.add(new Aircraft("Ту-204-100C", "грузовой","(3900-7000)км","1644 м3","110,750кг","Air France","3200 кг/ч"));
aircraftData.add(new Aircraft("Ил-76T", "грузовой","(3000-6100)км","1857 м3","170,000кг","Ukrainian airline","8262 кг/ч"));
}
/**
* Initializes the controller class. This method is automatically called
* after the fxml file has been loaded.
*/
@FXML
private void initialize() {
WebEngine engine = webSVG.getEngine();
engine.load("file:///C:/Users/Alex/Desktop/Новая%20папка%20(5)/AddressApp-Part-3/src/ch/makery/address/view/message.svg");
webSVG.setBlendMode(BlendMode.LIGHTEN);
WebEngine flyine = flySVG.getEngine();
flyine.load("file:///C:/Users/Alex/Desktop/Новая%20папка%20(5)/AddressApp-Part-3/src/ch/makery/address/view/aircraft.svg");
// Инициализация таблицы адресатов с двумя столбцами.
ModelColumn.setCellValueFactory(cellData -> cellData.getValue().modelNameProperty());
TypeColumn.setCellValueFactory(cellData -> cellData.getValue().typeNameProperty());
showAircraftDetails(null);
personTable.getSelectionModel().selectedItemProperty().addListener(
(observable, oldValue, newValue) -> showAircraftDetails(newValue));
// 1. Wrap the ObservableList in a FilteredList (initially display all data).
// 2. Set the filter Predicate whenever the filter changes.
filterField.textProperty().addListener((observable, oldValue, newValue) -> {
filteredData.setPredicate(person -> {
// If filter text is empty, display all persons.
if (newValue == null || newValue.isEmpty()) {
return true;
}
if (newValue != null) {
personTable.setItems(sortedData);
}
// Compare first name and last name of every person with filter text.
String lowerCaseFilter = newValue.toLowerCase();
if (person.getModelName().toLowerCase().indexOf(lowerCaseFilter) != -1) {
return true; // Filter matches first name.
} else if (person.getTypeName().toLowerCase().indexOf(lowerCaseFilter) != -1) {
return true; // Filter matches last name.
} else if (person.getRangeName().toLowerCase().indexOf(lowerCaseFilter) != -1) {
return true; // Filter matches last name.
}
return false; // Does not match.
});
});
sortedData.comparatorProperty().bind(personTable.comparatorProperty());
}
@FXML
private void handleSeachPerson() {
personTable.setItems(sortedData);
}
/**
* Вызывается главным приложением, которое даёт на себя ссылку.
*
* @param mainApp
*/
public void setMainApp(MainApp mainApp) {
this.mainApp = mainApp;
personTable.setItems(sortedData); // // Добавление в таблицу данных из наблюдаемого списка
}
/**
* Заполняет все текстовые поля, отображая подробности об адресате.
* Если указанный адресат = null, то все текстовые поля очищаются.
*
* @param person — адресат типа Person или null
*/
private void showAircraftDetails(Aircraft aircraft) {
if (aircraft != null) {
// Fill the labels with info from the person object.
modelLabel.setText(aircraft.getModelName());
typeLabel.setText(aircraft.getTypeName());
rangeLabel.setText(aircraft.getRangeName());
roominessLabel.setText(aircraft.getRoominess());
capacityLabel.setText(aircraft.getCapacity());
airlineLabel.setText(aircraft.getAirline());
fuelRateLabel.setText(aircraft.getFuelRate());
} else {
modelLabel.setText("");
typeLabel.setText("");
rangeLabel.setText("");
roominessLabel.setText("");
capacityLabel.setText("");
airlineLabel.setText("");
fuelRateLabel.setText("");
}
}
/**
* Вызывается, когда пользователь кликает по кнопке удаления.
*/
@FXML
public void handleDeletePerson(){
personTable.setItems(aircraftData);
int selectedId = personTable.getSelectionModel().getSelectedIndex();
personTable.getItems().remove(selectedId);
if(personTable.getItems().isEmpty()) {
delitely.setDisable(true);
edictory.setDisable(true);// таблица пустая
}
}
/**
* Вызывается, когда пользователь кликает по кнопке New...
*
*/
@FXML
private void handleNewPerson() {
Aircraft tempPerson = new Aircraft();
boolean okClicked = mainApp.showPersonEditDialog(tempPerson);
if (okClicked) {
aircraftData.add(tempPerson);
}
}
/**
* Вызывается, когда пользователь кликает по кнопка Edit...
*
*/
@FXML
private void handleEditPerson() {
Aircraft selectedPerson = personTable.getSelectionModel().getSelectedItem();
if (selectedPerson != null) {
boolean okClicked = mainApp.showPersonEditDialog(selectedPerson);
if (okClicked) {
showAircraftDetails(selectedPerson);
}
}
}
}
//....класс Aircraft
package ch.makery.address.model;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
public class Aircraft {
private StringProperty modelName;
private StringProperty typeName;
private StringProperty rangeName;
private StringProperty roominess;
private StringProperty capacity;
private StringProperty airline;
private StringProperty fuelRate;
/**
* Конструктор по умолчанию.
*/
public Aircraft() {
this(null, null, null, null,null,null,null);
}
/**
* Конструктор с данными.
*
* @param modelName
* @param typeName
* @param rangeName
*/
public Aircraft(String model, String type, String range, String roominess, String capacity, String airline, String fuelRate){
this.modelName = new SimpleStringProperty(model);
this.typeName = new SimpleStringProperty(type);
this.rangeName = new SimpleStringProperty(range);
// Какие-то динамические данные.
this.roominess = new SimpleStringProperty(roominess);
this.capacity = new SimpleStringProperty(capacity);
this.airline = new SimpleStringProperty(airline);
this.fuelRate = new SimpleStringProperty(fuelRate);
}
//Методы что принимают значения.
//-----------------------------------------//
public StringProperty rangeNameProperty() {
return rangeName;
}
//-----------------------------------------//
//-----------------------------------------//
public String getRangeName() {
return rangeName.get();
}
//-----------------------------------------//
//-----------------------------------------//
public void setRangeName(String rangeName) {
this.rangeName.set(rangeName);
}
//-----------------------------------------//
public String getModelName() {
return modelName.get();
}
public void setModelName(String modelName) {
this.modelName.set(modelName);
}
public StringProperty modelNameProperty() {
return modelName;
}
public String getTypeName() {
return typeName.get();
}
public void setTypeName(String typeName) {
this.typeName.set(typeName);
}
public StringProperty typeNameProperty() {
return typeName;
}
//----------------------------------------//
public String getRoominess() {
return roominess.get();
}
public void setRoominess(String roominess) {
this.roominess.set(roominess);
}
public StringProperty RoominessProperty() {
return roominess;
}
//-----------------------------------------//
public String getCapacity() {
return capacity.get();
}
public void setCapacity(String capacity) {
this.capacity.set(capacity);
}
public StringProperty CapacityProperty() {
return capacity;
}
//-----------------------------------------//
public String getAirline() {
return airline.get();
}
public void setAirline(String airline) {
this.airline.set(airline);
}
public StringProperty cityAirline() {
return airline;
}
//------------------------------------------//
public String getFuelRate() {
return fuelRate.get();
}
public void setFuelRate(String fuelRate) {
this.fuelRate.set(fuelRate);
}
public StringProperty FuelRateProperty() {
return fuelRate;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Почему-то не грузятся css в Open Server на втором компьютере, а на основном всё замечательно работает ! Не могу понять в чём проблема
Здравствуйте! Подскажите пожалуйста, как верно оформить анкорную ссылку в шаблоне компонента Битрикса? Есть шаблон компонента и необходимо...
Всем добрый день! Есть большой текст, со списками, картинками, мне нужно разделить на блоки divРазмер блоков динамический - зависит от разрешения...