正如标题所示,如何在JavaFX中创建一个方形而不是圆形的单选按钮?
如果不可能,如何使单选按钮具有自定义外观?和我上传的图片一样,用方形单选按钮代替默认设置。
如果这是不可能的,我可以让一个复选框像单选按钮一样吗?
发布于 2017-11-10 09:16:01
您可以构建自己的自定义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以满足您的需要。
https://stackoverflow.com/questions/47227809
复制相似问题