Есть таблица:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<Pane id="paneMain" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" stylesheets="@style.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<AnchorPane prefHeight="400.0" prefWidth="600.0">
<children>
<Label layoutX="155.0" layoutY="23.0" text="Работа с базой данных библиотеки" textFill="WHITE" AnchorPane.leftAnchor="155.0" AnchorPane.topAnchor="23.0">
<font>
<Font size="18.0" />
</font></Label>
<TableView id="mainTable" fx:id="mainTable" layoutX="14.0" layoutY="63.0" prefHeight="290.0" prefWidth="426.0" stylesheets="@style.css" AnchorPane.bottomAnchor="47.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="160.0">
<columns>
<TableColumn fx:id="columnName" prefWidth="103.0" text="Название книги" />
<TableColumn fx:id="columnAuthor" prefWidth="129.0" text="Автор" />
<TableColumn fx:id="columnYear" prefWidth="69.0" text="Год" />
<TableColumn fx:id="columnGenre" prefWidth="143.0" text="Жанр" />
</columns>
<columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
</columnResizePolicy>
</TableView>
<Button fx:id="buttonAdd" layoutX="459.0" layoutY="63.0" mnemonicParsing="false" onAction="#toSceneAdd" prefHeight="25.0" prefWidth="79.0" text="Добавить" AnchorPane.leftAnchor="459.0" AnchorPane.topAnchor="63.0" />
<Button fx:id="buttonDelete" layoutX="459.0" layoutY="151.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="79.0" text="Удалить" AnchorPane.leftAnchor="459.0" AnchorPane.topAnchor="151.0" />
<Button layoutX="459.0" layoutY="107.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="79.0" text="Изменить" />
</children>
</AnchorPane>
</children>
</Pane>
Контроллер к таблице:
package sample;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import library.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TableView;
import java.io.IOException;
import java.net.URL;
import java.sql.SQLException;
import java.util.ResourceBundle;
import static database.Database.getBooks;
public class Controller implements Initializable{
public Button buttonAdd;
public TableView<Book> mainTable;
public TableColumn<Book,String> columnName;
public TableColumn<Book,String> columnAuthor;
public TableColumn<Book,Integer> columnYear;
public TableColumn<Book,String> columnGenre;
public void toSceneAdd(ActionEvent actionEvent) throws IOException {
Parent root = FXMLLoader.load(getClass().getResource("/sample/AddNewBook.fxml"));
Main.primaryStage.setScene(new Scene(root));
Main.primaryStage.show();
}
@Override
public void initialize(URL location, ResourceBundle resources) {
try {
ObservableList<Book> books = FXCollections.observableArrayList(getBooks());
columnName.setCellValueFactory(new PropertyValueFactory<Book, String>("NameBook"));
columnAuthor.setCellValueFactory(new PropertyValueFactory<Book,String>("authorBook"));
columnGenre.setCellValueFactory(new PropertyValueFactory<Book, String>("genreBook"));
columnYear.setCellValueFactory(new PropertyValueFactory<Book, Integer>("yearBook"));
mainTable.setItems(books);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Пользователь выбирает запись в таблице и нажимает кнопку, как отследить выбранную запись пользователем?
Получить выбранную строку, а точнее данные, которыми заполнена эта строка, можно с помощью цепочки методов getSelectionModel().getSelectedItem()
класса TableView
:
Book selectedBook = mainTable.getSelectionModel().getSelectedItem();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
В общем, мне нужно подсчитать количество гласных букв в n введенных строках и отсортировать их по возрастанию\убываниюДля этого, я сначала...
В google maps хочу реализовать кнопку myCurrentLocationВ методе onCreate добавил следующее:
В intellij ideа, когда запущен сервер, я нажимаю обновить и табличка "Restart server" "Redeploy server", оба пересобирают артифактыМожно ли как-то обновить проект,...