【问题标题】:Reposition the accordian arrow in JavaFX在 JavaFX 中重新定位手风琴箭头
【发布时间】:2016-08-22 12:02:01
【问题描述】:

我想将一个手风琴控件嵌套在另一个控件中,尽管这可以按预期工作,但我想对其进行自定义,以便嵌套手风琴的箭头相对于顶层缩进。 此链接显示了当前的情况:- The bottom level arrows need to move in 20px

我想不出在代码或场景构建器中设置它的方法。但是,如果我在风景视图中打开正在运行的应用程序,它似乎会以不同的方式显示它,我可以看到 TitledPane 的组成为:TitleRegion>StackPane arrowRegion>StackPane 箭头。如果我在其中添加 fx-translateX 20.0,它会做我想要的。

code 或者 fxml 有没有好的解决方案?或者我可以让css做sceneryview可以做的事情(我也找不到sceneryview的导出)。

我刚刚在scenebuilder 中修改了Netbeans 模板JavaFX fxml 项目。使用 JAVA 1.8.0.92., nb8.0.2, 最新 sb +sv。我的 fxml 是:

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

<?import javafx.scene.control.Accordion?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TitledPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Text?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="accordianchildtitledpanearrrowcustom.FXMLDocumentController">
    <children>
        <Label fx:id="label" alignment="CENTER" contentDisplay="CENTER" layoutX="79.0" layoutY="14.0" minHeight="16" minWidth="69" text="Example nested accordian" />
      <Accordion layoutY="38.0" prefHeight="54.0" prefWidth="320.0">
        <panes>
          <TitledPane alignment="CENTER" animated="false" text="Top Level 1">
               <content>
                  <Accordion>
                    <panes>
                      <TitledPane alignment="CENTER" animated="false" text="Bottom Level 1">
                           <content>
                              <Text strokeType="OUTSIDE" strokeWidth="0.0" text="example text 1" />
                           </content></TitledPane>
                      <TitledPane alignment="CENTER" animated="false" contentDisplay="CENTER" text="Bottom Level 2">
                           <content>
                              <Text strokeType="OUTSIDE" strokeWidth="0.0" text="example text 2" />
                           </content></TitledPane>
                    </panes>
                  </Accordion>
               </content>
            </TitledPane>
          <TitledPane alignment="CENTER" animated="false" text="Top Level 2" />
        </panes>
      </Accordion>
    </children>
</AnchorPane>

【问题讨论】:

    标签: java css javafx scenebuilder


    【解决方案1】:

    在应用程序的 css 文件中,您可以添加以下行来翻译箭头按钮:

    .accordion .title > .arrow-button .arrow{
        -fx-translate-x: 20;
    }
    

    如果只想翻译嵌套TitledPanes的箭头按钮,可以使用:

    .titled-pane .accordion .title > .arrow-button .arrow{
        -fx-translate-x: 20;
    }
    

    样式表可以添加如下:

     scene.getStylesheets().add(getClass().getResource("/yourPackage/yourStyleSheet.css").toExternalForm());
    

    【讨论】:

    • 是的,很不错。非常感谢。知道是否有办法直接在 fxml 或代码中执行此操作? IE。不是css
    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    相关资源
    最近更新 更多