getSelectionModel не открывается, пока я использую вкладки - PullRequest
0 голосов
/ 08 января 2019

Я столкнулся с проблемой, что после использования .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. Мой плохой -_-. Вот мой файл fxml от Scema .:

<?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 голосов
/ 08 января 2019

У вас две проблемы, на самом деле.

  1. TabPane, который вы определяете в Controller, отличается от один в вашем FXML файле, потому что у него нет @FXML аннотаций.
  2. Ваш FXML также не предоставляет fx:id для вашего TabPane.

Чтобы это исправить, измените Controller, чтобы определить tabPane следующим образом:

@FXML
TabPane tabPane = new TabPane();

И добавьте следующий атрибут в тег <TabPane> вашего FXML файла:

fx:id="tabPane"

Проблема решена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...