[[oktatas:programozás:java:java_fx|< Java FX]]
====== JavaFX - Kontrollok kötése ======
* **Szerző:** Sallai András
* Copyright (c) 2025, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Gomb kötése kiválasztott listaelemhez =====
A törlésgombot csak akkor legyen aktív ha ki van választva listaelem.
@FXML
private Button deleteButton;
@FXML
private ListView list1;
@FXML
void initialize() {
list1.getItems().add("Item 1");
list1.getItems().add("Item 2");
list1.getItems().add("Item 3");
deleteButton.disableProperty()
.bind(list1.getSelectionModel()
.selectedItemProperty().isNull());
}
===== Gomb kötése táblázat soraihoz =====
package com.example;
import javafx.beans.binding.Bindings;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class MainController {
@FXML
private TableView table;
@FXML
private TableColumn idCol;
@FXML
private TableColumn nameCol;
@FXML
private Button startButton;
@FXML
private void initialize() {
idCol.setCellValueFactory(new PropertyValueFactory<>("id"));
nameCol.setCellValueFactory(new PropertyValueFactory<>("name"));
ObservableList data = FXCollections.observableArrayList();
data.add(new Employee(1, "name1"));
data.add(new Employee(2, "name2"));
data.add(new Employee(3, "name3"));
data.add(new Employee(4, "name4"));
table.setItems(data);
/* Tiltjuk a gombot ha nincs kiválasztva semmi
vagy ha a name értéke name3 */
startButton.disableProperty()
.bind(table.getSelectionModel()
.selectedItemProperty().isNull()
.or(
Bindings.select(
table.getSelectionModel()
.selectedItemProperty(), "name")
.isEqualTo("name3")
)
);
}
@FXML
void onClickStartButton(ActionEvent event) {
}
}
===== TextField kötése rádiógomb csoporthoz =====
A TextField csak akkor legyen látható ha a radioButton1 van kiválsztva.
@FXML
private RadioButton radioButton1;
@FXML
private ToggleGroup radioGroup1;
@FXML
private TextField textField1;
//...
textField1.visibleProperty().bind(
Bindings.equal(radioGroup1.selectedToggleProperty(), radioButton1)
);