< Java FX

JavaFX - Kontrollok kötése

Szerző: Sallai András

Copyright © 2025, Sallai András

Licenc: 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<String> 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<Employee> table; @FXML private TableColumn<Employee, Integer> idCol; @FXML private TableColumn<Employee, String> nameCol; @FXML private Button startButton; @FXML private void initialize() { idCol.setCellValueFactory(new PropertyValueFactory<>("id")); nameCol.setCellValueFactory(new PropertyValueFactory<>("name")); ObservableList<Employee> 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) );