正如标题所示,如何在JavaFX中创建一个方形而不是圆形的单选按钮?
如果无法做到,如何使单选按钮具有自定义外观?就像在我上传一个方形单选按钮的图像代替默认值。
如果无法做到这一点,我是否可以将复选框设置为单选按钮?
答案 0 :(得分:0)
您可以构建自己的自定义javafx单选按钮组件squareRadioButton或其他内容。但是,请考虑最佳编程和UI实践 - 用户期望圆形选择按钮在所有平台上充当标准单选按钮。在这里问你们的第一个问题是"我为什么要这样做?"。老实说,你做的事似乎不对。
如果你真的想这样做(因为它真的会让用户受益)我认为最简单的选择是以编程方式将一些选项框按钮组合起来作为一组单选按钮:
对所有复选框的操作事件调用handleSelectItem()方法,并取消选择之前已选择的方法(如果有)。您可能希望存储对数组中所有复选框的引用,以便循环遍历它们,并在将来更轻松地进行管理。
@FXML
public handleSelectItem(){
for ( CheckBox box : boxList ) {
// Unselect all checkboxes, except the one that invoked the method
if( box.isSelected() && box!=this ){
box.setSelected(false);
}
}
}
还有另一种选择尝试收音机盒,它正在调整它的样式表。
您必须在您的FXML上应用自定义css文件,或者为每个广播框执行此操作:
radio.setStyle(
"-fx-border-color: lightblue; "
+ "-fx-font-size: 20;"
+ "-fx-border-insets: -5; "
+ "-fx-border-radius: 5;"
+ "-fx-border-style: dotted;"
+ "-fx-border-width: 2;"
);
当然,您必须自定义CSS以满足您的需求。