我在尝试更改特定标签时尝试执行方法。 如果没有被选中,当我选择它时我需要这样做。
这就是我实际在做的事情:
class Graph{
@FXML private TabPane Graphics;
public void llenarResponsables() throws SQLException{
IDProceso=cbProceso.getSelectionModel().getSelectedItem().getIdProceso();
IDIndicador = cbIndicador.getSelectionModel().getSelectedItem().getIdIndicador();
List<Responsables> responsables = new ArrayList<Responsables>();
cdFormatoAnalisis oFormatoAnalisis = new cdFormatoAnalisis();
responsables = oFormatoAnalisis.listarResponsables();
ObservableList<Responsables> tvLlenar = FXCollections.observableArrayList(responsables);
tcNombre.setCellValueFactory(new PropertyValueFac`tory<Responsables,String>("Usuario"));
tcNombre.setResizable(false);
tcPuesto.setCellValueFactory(new PropertyValueFactory<Responsables,String>("Categoria"));
tcPuesto.setResizable(false);
tvResponsables.setItems(tvLlenar);
Graphics.setOnMouseClicked();
}
答案 0 :(得分:0)
我不确定您在提到的方法中尝试做什么,但如果您想更改标签fire events
,可以使用TabPane上的ChangeListener
一个工作示例
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.stage.Stage;
public class FireEventsOnTabChange extends Application {
@Override
public void start(Stage stage) throws Exception {
TabPane tabPane = new TabPane();
Tab tab1 = new Tab("Tab1");
Tab tab2 = new Tab("Tab2");
Tab tab3 = new Tab("Tab3");
tabPane.getTabs().addAll(tab1, tab2, tab3);
Scene scene = new Scene(tabPane, 200, 200);
stage.setScene(scene);
stage.show();
tabPane.getSelectionModel().selectedItemProperty()
.addListener(new ChangeListener<Tab>() {
@Override
public void changed(ObservableValue<? extends Tab> old,
Tab oldTab, Tab newTab) {
//Check for Tab and call you method here
System.out.println("You have selected "
+ newTab.getText());
}
});
}
public static void main(String[] args) {
launch(args);
}
}