簡體   English   中英

JavaFX8 tabpane的選項卡沒有切換

[英]JavaFX8 tabpane's tab not switching

下面是我使用TabPane的GridPane代碼。

TabPane中有2個選項卡。

當我在SceneBuilder上單擊預覽時,單擊選項卡頭時不會切換選項卡。

<?xml version="1.0" encoding="UTF-8"?>
    <?import javafx.scene.control.SplitPane?>
    <?import javafx.scene.control.Tab?>
    <?import javafx.scene.control.TabPane?>
    <?import javafx.scene.control.TreeView?>
    <?import javafx.scene.layout.AnchorPane?>
    <?import javafx.scene.layout.ColumnConstraints?>
    <?import javafx.scene.layout.GridPane?>
    <?import javafx.scene.layout.RowConstraints?>
    <GridPane id="content" alignment="CENTER" prefHeight="310.0" prefWidth="800.0" styleClass="mainParent" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.gvj.sndp.view.controller.HomeController">
      <children>
          <SplitPane dividerPositions="0.18421052631578946" prefHeight="160.0" prefWidth="200.0" GridPane.rowIndex="2">
            <items>
                <TreeView fx:id="menuTreeView" prefHeight="273.0" prefWidth="115.0" />
                <TabPane fx:id="tabPane" mouseTransparent="true" prefHeight="200.0" prefWidth="200.0" rotateGraphic="true">
                   <tabs>
                      <Tab text="Untitled Tab">
                        <content>
                          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
                        </content>
                      </Tab>
                      <Tab text="Untitled Tab">
                        <content>
                          <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
                        </content>
                      </Tab>
                   </tabs></TabPane>
            </items>
          </SplitPane>
      </children>
      <columnConstraints>
        <ColumnConstraints hgrow="ALWAYS" minWidth="-1.0" prefWidth="-1.0" />
      </columnConstraints>
      <rowConstraints>
          <RowConstraints maxHeight="35.0" minHeight="22.0" prefHeight="30.0" valignment="CENTER" vgrow="ALWAYS" />
        <RowConstraints maxHeight="35.0" minHeight="22.0" prefHeight="22.0" valignment="CENTER" vgrow="ALWAYS" />
          <RowConstraints valignment="CENTER" vgrow="ALWAYS" />
      </rowConstraints>
    </GridPane>

當您為鼠標事件設置透明時,預計它不會對鼠標單擊執行任何操作: mouseTransparent="true"

<TabPane fx:id="tabPane" mouseTransparent="true" prefHeight="200.0" prefWidth="200.0" rotateGraphic="true">

我猜它是偶然完成的,但是當你將mouseTransparent屬性設置為true時:

如果為true,則此節點(及其所有子節點)對鼠標事件完全透明。 選擇鼠標事件的目標時,將mouseTransparent設置為true的節點及其子樹將不予考慮。

從FXML中刪除提到的部分,您的預覽將像魅力一樣工作。

在SceneBuilder中,在TabPane的Properties選項卡上:

在此輸入圖像描述

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.Tab?>
<?import javafx.scene.control.TabPane?>
<?import javafx.scene.control.TreeView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>


<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <children>
      <TabPane nodeOrientation="LEFT_TO_RIGHT" tabClosingPolicy="UNAVAILABLE">
        <tabs>
          <Tab text="Tab1" />
          <Tab text="Tab2">
            <content>
              <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="229.0" prefWidth="600.0" />
            </content>
          </Tab>
        </tabs>
      </TabPane>
   </children>
</Pane>

根據您所需的尺寸更改此處tabpane。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM