我遇到的问题是,在函数中使用.getSelectionModel后,它无法打开所选的选项卡。试图使用.getTabs来检查它是否工作正常。这是我的代码:
package sample;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.*;
public class Controller {
public void loadinimas() {
}
/*---------------------- BENDROJO LANGO KINTAMIEJI ----------------------*/
@FXML
private Tab darbuotojuValdymas;
TabPane tabPane = new TabPane();
/*---------------------- PAGRINDINIO LANGO KINTAMIEJI ----------------------*/
@FXML
private Button pagrindinisInformacija;
@FXML
private Button pagrindinisDarbuotojuValdymas;
/*---------------------- PAGRINDINIO LANGO METODAI ----------------------*/
@FXML
void pagrindinisInformacijaPateikti() {
Alert a = new Alert(Alert.AlertType.INFORMATION);
a.setResizable(true); // Kad galima butu mazinti / didinti ALERTO langa
a.setTitle("Informacija apie darbą");
a.showAndWait();
}
@FXML
void pagrindinisDarbuotojuValdymasPateikti() {
tabPane.getSelectionModel().select(darbuotojuValdymas);
}
}
作为一个成员提到,我忘了上传我的.FXML文件。这是我来自Scema的fxml文件。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Tab?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.layout.AnchorPane?>
<TabPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/10.0.1" fx:controller="sample.Controller">
<tabs>
<Tab text="Pagrindinis">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Button fx:id="pagrindinisInformacija" layoutX="209.0" layoutY="59.0" mnemonicParsing="false" onAction="#pagrindinisInformacijaPateikti" prefHeight="44.0" prefWidth="182.0" text="Informacija" />
<Button fx:id="pagrindinisDarbuotojuValdymas" layoutX="209.0" layoutY="122.0" mnemonicParsing="false" onAction="#pagrindinisDarbuotojuValdymasPateikti" prefHeight="44.0" prefWidth="182.0" text="Darbuotojų valdymas" />
<Button layoutX="209.0" layoutY="191.0" mnemonicParsing="false" prefHeight="44.0" prefWidth="182.0" text="Komandų valdymas" />
<Button layoutX="209.0" layoutY="255.0" mnemonicParsing="false" prefHeight="44.0" prefWidth="182.0" text="Užduočių valdymas" />
</children></AnchorPane>
</content>
</Tab>
<Tab fx:id="darbuotojuValdymas" text="Darbuotojų valdymas">
<content>
<TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="UNAVAILABLE">
<tabs>
<Tab text="Įtraukti naują darbuotoją">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Darbuotojų valdymas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Darbuotojų sąrašas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</TabPane>
</content>
</Tab>
<Tab text="Komandų valdymas">
<content>
<TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="UNAVAILABLE">
<tabs>
<Tab text="Naujos komandos sukūrimas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Komandų valdymas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Komandų sąrašas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</TabPane>
</content>
</Tab>
<Tab text="Užduočių valdymas">
<content>
<TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="UNAVAILABLE">
<tabs>
<Tab text="Naujos užduoties sukūrimas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Užduočių valdymas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Užduočių sąrašas">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</TabPane>
</content>
</Tab>
</tabs>
</TabPane>
答案 0 :(得分:1)
实际上,您有两个问题。
TabPane
中定义的Controller
与
FXML
文件中的一个,因为其中没有@FXML
注解。 FXML
也没有为您的fx:id
提供TabPane
。要解决此问题,请更改您的Controller
以定义tabPane
,如下所示:
@FXML
TabPane tabPane = new TabPane();
并将以下属性添加到<TabPane>
文件的FXML
标记中:
fx:id="tabPane"
问题已解决!