JavaFX:如何设置默认选中/打开的TiledPane

JavaFX:如何设置默认选中/打开的TiledPane,java,javafx,accordion,pane,Java,Javafx,Accordion,Pane,我正在使用java和javaFX进行一个项目,我需要知道是否有办法在默认情况下打开Accordion中的第一个TiteledPane 我的意思是,当加载阶段时,选择第一个TiteledPane,其内容显示为,无需任何用户干预。我尝试了所有建议的方法,但没有人看起来像我想要的。正如我所看到的,在官方文件中或本网站或其他网站中也没有描述过这样的人 此外: 以下是我的方法:(编写java和FXML代码) 以下是我所依赖的文档中的文本 公共最终作废集ExpandedPane(标题窗格值) 当前可见的

我正在使用java和javaFX进行一个项目,我需要知道是否有办法在默认情况下打开
Accordion
中的第一个
TiteledPane

我的意思是,当加载阶段时,选择第一个
TiteledPane
,其内容显示为,无需任何用户干预。我尝试了所有建议的方法,但没有人看起来像我想要的。正如我所看到的,在官方文件中或本网站或其他网站中也没有描述过这样的人


此外:

以下是我的方法:(编写java和FXML代码)


以下是我所依赖的文档中的文本

公共最终作废集ExpandedPane(标题窗格值)

当前可见的扩展标题窗格。尽管如此 从技术上讲,可以将展开的窗格设置为不可用的值 在getPanes()中,皮肤会将此操作视为expandedPane 是空的。如果某个窗格被设置为展开窗格,则随后 如果已从getPanes()中删除,则展开的窗格将设置为null 可能的(如果您已手动绑定 例如,将窗格扩展为某个值)


如果有什么不清楚的地方,请发表评论。任何建议都会很有帮助。感谢关于代码困难的问题,强烈建议您在每次工作时刷新项目,然后从javaFX scene builder保存FXML文件,因为eclipse不会自动执行此操作

如果您仍然存在一些代码问题,则验证以下示例:

@FXML
private Accordion accord;
@FXML
private TitledPane pane1,pane2;

//codes in controller.intialize()
...
    pane1.setText("TitledPane A");
    pane2.setText("TitledPane B");
    accord.setExpandedPane(pane1);

关于你在评论中提到的云问题,正如我所知,将工作区放在google的驱动器文件夹中是无害的。如果你每次完成一章代码时都进行备份,可能会更好,因为有时,当他试图加载另一个程序已经使用的文件时,驱动器会崩溃。

对于那些希望在FXML而不是代码中包含默认扩展窗格的人:

<Accordion expandedPane="$myPane">
    <panes>
      <TitledPane fx:id="myPane">
          ...
      </TitledPane>
      <TitledPane>
          ...
      </TitledPane>
    </panes>
</Accordion>

...
...

“我尝试了所有建议的方法”。请创建一个列表,显示您尝试的内容和要包含的问题。您的代码看起来是正确的。我猜你没有阅读我之前评论中的链接:请发布一个。正如链接中所说,你的示例代码应该是最小的(只需要你需要显示问题的内容,例如你需要一个手风琴和最多2个标题窗格(不是7个),其他什么都没有);它应该是完整的(完整的类和fxml文件,足以实际执行它,而不是像您这样的代码片段),并且是可验证的(编译、运行并演示问题)。从头开始,创建一个只有两个标题窗格的新项目,并尝试让它在启动时展开一个标题窗格。如果你不能,那就把代码贴出来。直到现在你才提到你得到了一个例外?您不认为这以前是有用的信息吗?我的意思是“正确的问题表单”:(非常有效!不幸的是,SceneBuilder似乎没有公开“expandedPane”属性,这使得查找变得很困难。此外,scene builder在保存时会覆盖此属性:(
javafx.fxml.LoadException: 
/C:/Users/Malek%20Boubakri/Google%20Drive/workspace/Sirat/bin/vue/Enseignant.fxml
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at vue.Enseignant.start(Enseignant.java:18)
at vue.Index.stageCtrlHandler(Index.java:85)
at controleur.MenuCtrl.click_btn(MenuCtrl.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(Unknown Source)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.event.Event.fireEvent(Unknown Source)
at javafx.scene.Scene$ClickGenerator.postProcess(Unknown Source)
at javafx.scene.Scene$ClickGenerator.access$8100(Unknown Source)
at javafx.scene.Scene$MouseHandler.process(Unknown Source)
at javafx.scene.Scene$MouseHandler.access$1500(Unknown Source)
at javafx.scene.Scene.impl_processMouseEvent(Unknown Source)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$350(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$165/775736639.get(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
at com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
at com.sun.glass.ui.View.notifyMouse(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$145(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$36/2117255219.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at controleur.EnsCtrl.initialize(EnsCtrl.java:301)
    ... 54 more
@FXML
private Accordion accord;
@FXML
private TitledPane pane1,pane2;

//codes in controller.intialize()
...
    pane1.setText("TitledPane A");
    pane2.setText("TitledPane B");
    accord.setExpandedPane(pane1);
<Accordion expandedPane="$myPane">
    <panes>
      <TitledPane fx:id="myPane">
          ...
      </TitledPane>
      <TitledPane>
          ...
      </TitledPane>
    </panes>
</Accordion>