【发布时间】:2017-06-01 07:54:11
【问题描述】:
说明
我有两个 RadioButtons,它们都在名为 fileSearchGroup 的 ToggleGroup 上,我使用 SceneBuilder 8 制作它们,下面是一张图片:
问题
所以添加了两个RadioButtons,如上图。如果我更改它们,使名为 File Absolute Path... 的一个下降,另一个名为 File Name... 的出现,哪个将是第一个,哪个将是 ToggleGroup 上的第二个,名为 fileSearchGroup?
为什么我想知道?
因为在应用程序内部我有这个代码(下面是一些伪代码):
//Get the index of the selected toggle
if(group.getSelectedToggleIndex() == 0)
//Search using absolute path
else
//Search using file name
终于
是否有上述解决方案,或者我是否必须将ID 添加到我不想这样做的RadioButtons,因为我保存数据库设置时会增加代码复杂性。
- 为什么我不想使用
ID
我正在使用 KeyValue 数据库保存设置,因此 Key 是例如 SearchFilesUsing 并且该值是一个类似 0 或 1 的数字,基于 RadioButton 内选定的 RadioButton 索引ToggleGroup ,如果我添加ID,那么它会使工作变得困难,如果我想在未来更改ID,我将不得不在这里和那里再次更改代码。
【问题讨论】:
-
为什么不直接将单选按钮注入控制器(例如
fx:id="absolutePathRadioButton")并执行if (group.getSelectedToggle() == absolutePathRadioButton)??? -
@James_D 你好詹姆斯 :) 。我添加了一个
Finally部分关于为什么我不使用RadioButtons的ID 的问题,我有一个Key-Value数据库,如果我在未来的应用程序版本中更改任何ID,它将破坏数据库。我已经构建了它,如果我现在更改它,它将为正在使用它的用户刹车。也许是一个糟糕的决定。不过,我会重新考虑如何让它像你说的那样。 -
我不建议映射一个 id。我建议只使用对对象本身的引用。
-
@James_D 好的,所以关键是
Search_Files_Using,我应该为value使用什么,所以当我从key-value数据库中获取值以获取用户拥有的确切RadioButton时在关闭应用程序之前选择?顺便说一句,我使用 Java Properties 将其保存到属性文件中,这是最简单的方法。 -
使用一些字符串常量并在需要时将它们设置为控件中的用户数据。最重要的是,您必须在文件中的内容和选择的内容之间进行一些任意映射。没有理由相信 int 比其他任何事情都重要。依赖于切换组的实现细节远不如自己显式编码。
标签: javafx radio-button