使用标签页时无法打开getSelectionModel

时间:2019-01-07 22:03:58

标签: java javafx

我遇到的问题是,在函数中使用.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);
    }
}

这是我的Scema视图: enter image description here

作为一个成员提到,我忘了上传我的.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>

1 个答案:

答案 0 :(得分:1)

实际上,您有两个问题。

  1. 您在TabPane中定义的ControllerFXML文件中的一个,因为其中没有@FXML 注解。
  2. 您的FXML也没有为您的fx:id提供TabPane

要解决此问题,请更改您的Controller以定义tabPane,如下所示:

@FXML
TabPane tabPane = new TabPane();

并将以下属性添加到<TabPane>文件的FXML标记中:

fx:id="tabPane"

问题已解决!