我对javafx有问题。我有大约40个复选框的GridPane。我需要让用户只能选择一个复选框,并将选中的复选框保存到变量中。
这是使用复选框的方法:
public static class createBet {
public static CheckBox bet;
public static CheckBox isBet(CheckBox[] group, int finalI, AnchorPane resultBlock) {
for (CheckBox j : group) {
if (j.equals(bet)) {
j.setSelected(false);
}
}
ObservableList resultLabels = resultBlock.getChildren();
Label label_num = (Label)resultLabels.get(0);
Label label_win = (Label)resultLabels.get(1);
if (group[finalI].isSelected()) {
bet = group[finalI];
resultBlock.setStyle("-fx-border-color: black;");
label_num.setStyle("-fx-text-fill: black");
label_win.setStyle("-fx-text-fill: black");
}
else {
bet = null;
resultBlock.setStyle("-fx-border-color: gray");
label_num.setStyle("-fx-text-fill: gray");
label_win.setStyle("-fx-text-fill: gray");
}
return bet;
}
}
这是一个最终变量类:
public class bets {
public CheckBox numberBet = null;
public CheckBox colorBet = null;
public CheckBox evenBet = null;
}
在那里我使用这些类:
//(block with variables and links to FXML)
createBet bet = new createBet();
bets bets = new bets();
for (int i = 0; i < numbersGroup.length; i++) {
int finalI = i;
numbersGroup[i].selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
bets.numberBet = createBet.isBet(numbersGroup, finalI, resultNum);
}
});
}
}
}
复选框选择正确,但所选复选框(类下注)的变量始终等于null。
UPD。我注释类createBet,并将其中的代码添加到公共void changed(observeValue
我对这个问题的解决方案。我不使用方法isBet设置varbable<代码>isBet仅用于更改复选框和激活块的结果。我在内部操作中设置的变量,其中使用了thei。
类的新版本:
public class Bet {
private CheckBox bet;
public void forBet(CheckBox[] group, int finalI, AnchorPane resultBlock) {
for (CheckBox j : group) {
if (j.equals(bet)) {
j.setSelected(false);
}
}
ObservableList resultLabels = resultBlock.getChildren();
Label label_num = (Label)resultLabels.get(0);
Label label_win = (Label)resultLabels.get(1);
if (group[finalI].isSelected()) {
bet = group[finalI];
resultBlock.setStyle("-fx-border-color: black;");
label_num.setStyle("-fx-text-fill: black");
label_win.setStyle("-fx-text-fill: black");
}
else {
bet = null;
resultBlock.setStyle("-fx-border-color: gray");
label_num.setStyle("-fx-text-fill: gray");
label_win.setStyle("-fx-text-fill: gray");
}
}
public CheckBox startBet(CheckBox[] group) {
for (CheckBox i : group){
if (i.isSelected()) {
bet = i;
break;
}
}
return bet;
}
}
变量:
public CheckBox numberBet = null;
public CheckBox colorBet = null;
public CheckBox evenBet = null;
用于方法:
Bet Bet = new Bet();
for (int i = 0; i < numbersGroup.length; i++) {
int finalI = i;
numbersGroup[i].selectedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
Bet.forBet(numbersGroup, finalI,resultNum);
}
});
}
btn_start.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
numberBet = Bet.startBet(numbersGroup);
System.out.println(numberBet);
}
});
我想,这是解决我的问题。
我有一个包含10个项目(书名)的Jlist。用户将被允许从10个项目中选择3个。我想将选定的项目保存到3个不同的字符串变量(例如book0、book1、book2等)。 我不知道该怎么做。
问题内容: 我对编程非常陌生,无法添加到。没有错误,但未显示任何内容。 问题答案: 一个渲染器可以得出一个复选框,但不支持单元格编辑器。而是考虑一个单列。默认的渲染器和编辑器为类型的列是一个,对于实施例。
你好,我正在开发angularjs应用程序。我显示了复选框的列表。我有下面的代码。
期望:如果取消选中/禁用复选框,我希望显示样例布尔值false
本文向大家介绍aurelia 绑定到复选框,包括了aurelia 绑定到复选框的使用技巧和注意事项,需要的朋友参考一下 示例 基本复选框 带有对象数组的复选框 带有布尔值的复选框
我试图找到一种方法来保存复选框的状态到房间数据库,但当我点击复选框并重新打开应用程序时,它的状态并没有改变。我不知道我哪里出错了。我已经搜索了前面的问题,但找不到解决办法。下面是我的代码和感谢。 TodoAdapter 主体活动