当我在javafx中单击它时,如何从tabpane执行方法

时间:2014-07-16 18:47:06

标签: tabs javafx execute tabpanel scenebuilder

我在尝试更改特定标签时尝试执行方法。 如果没有被选中,当我选择它时我需要这样做。

这就是我实际在做的事情:

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();
}

1 个答案:

答案 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);
    }

}