内容简介:翻译自:https://stackoverflow.com/questions/33194517/javafx-how-to-set-a-titeledpane-selected-opened-by-default
FX开发一个项目,我需要知道是否有办法让Accordion中的第一个TiteledPane默认打开.
我的意思是在加载舞台时,会选择第一个TiteledPane并显示其内容而无需任何用户干预.我尝试了所有建议的方法,但没有人看起来像我想要的.正如我所看到的还没有在官方文档中描述或在本网站或其他地方给出的一样.
此外:
这是我的方法:(代码java和FXML)
@FXML private Accordion accord_pane; @FXML private TitledPane pane_ara,pane_sci,pane_soc,pane_art,pane_spo,pane_fra,pane_ang; ... pane_ara.setText("TitledPane A"); pane_sci.setText("TitledPane B"); accord_pane.setExpandedPane(pane_ara);
<Accordion fx:id="accord_pane" layoutX="20.0" layoutY="100.0" prefHeight="400.0" prefWidth="680.0"> <panes> <TitledPane fx:id="pane_ara" animated="false"> <content> <Pane prefHeight="200.0" prefWidth="200.0"> <children> <ImageView fx:id="img_unit_ara" fitHeight="250.0" fitWidth="650.0" layoutX="15.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@temp_5.png" /> </image> </ImageView> </children> </Pane> </content> </TitledPane> <TitledPane fx:id="pane_sci" animated="false"> <content> <Pane prefHeight="200.0" prefWidth="200.0"> <children> <ImageView fx:id="img_unit_sci" fitHeight="190.0" fitWidth="650.0" layoutX="15.0" layoutY="15.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@temp_3.png" /> </image> </ImageView> </children> </Pane> </content> </TitledPane> </panes> </Accordion>
这是例外:
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
这是我依赖的文档中的文本.
public final void setExpandedPane(TitledPane value)
The expanded TitledPane that is currently visible. While it is
technically possible to set the expanded pane to a value that is not
in getPanes(), doing so will be treated by the skin as if expandedPane
is null. If a pane is set as the expanded pane, and is subsequently
removed from getPanes(), then expanded pane will be set to null, if
possible. (This will not be possible if you have manually bound the
expanded pane to some value, for example).
如果有任何不清楚的地方请评论.任何建议都会有所帮助.谢谢
关于代码困难,强烈建议每次处理时刷新项目,然后从javaFX场景构建器保存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);
关于你在评论中提到的云问题,因为我知道将工作区放在谷歌驱动器文件夹中是没有害处的.如果你每次完成代码的一部分都做备份会更好,因为有时驱动器崩溃当他尝试加载另一个程序已经使用过的文件时.
翻译自:https://stackoverflow.com/questions/33194517/javafx-how-to-set-a-titeledpane-selected-opened-by-default
以上所述就是小编给大家介绍的《JavaFX:如何设置默认选择/打开的TiteledPane》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 怎样打开XML文件?xml文件如何打开?
- Android获取软键盘的高度、键盘的打开与关闭、监听键盘处于打开还是关闭状态
- php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
- golang hijack打开方式
- 图片悬停“滑动打开”动画效果
- 网络编程——打开网络库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
零基础学Java Web开发
刘聪 编 / 机械工业出版社 / 2008-1 / 59.00元
《零基础学Java Web开发:JSP+Servlet+Sfruts+Spring+Hibernte》全面讲解Java Web应用开发的编程技术,并详细介绍Java Web开发中各种常用的技术,可作为Java Web开发技术的学习指南。 《零基础学Java Web开发:JSP+Servlet+Sfruts+Spring+Hibernte》共17章,分为3篇,其中第1~12章是基础篇,讲解了......一起来看看 《零基础学Java Web开发》 这本书的介绍吧!