长话短说: 我的一项任务是出于医疗目的与老年人(患者)进行互动。
我已经在SceneBuilder中设计了所有东西,但现在我陷入了困境。
患者将需要一些医疗数据,有些日子比其他日子需要更多的投入。输入诸如心率,血糖,他们当晚的睡眠方式等等。
我将需要一个适应性强的系统,因为每天他们可能要投入多少资金(取决于他们和/或他们的医生)
这是程序当前的状态: The first 2-3 rows in the gridpane is my focus right now.
我想要的是,当我按下ADD按钮时,它将在其平面中创建一个组合框,并在网格窗格中的一行中显示电影本身。
我实际上不知道用网格板这样做是否好,或者是否有人提出任何其他建议(全部表示赞赏)。
您会看到在第6-9行中,硬编码是什么输入。由于这些选项可能会随着时间而改变,因此我需要对其进行调整。这就是为什么我的第一个组合框从数据库中读取其不同的输入部分的原因。
到目前为止我的尝试:
@FXML
GridPane gridPane;
@FXML
Button addButton;
@FXML
ComboBox<String> addedCombo;
@FXML
String amountCombo;
int count = 0;
@FXML
public void addComboBoxButton() {
amountCombo = "addedCombo";
addedCombo = new ComboBox();
addedCombo.setName(amountCombo + count);
count++;
}
我正在尝试创建一个函数,该函数创建了一个组合框evertyime,按下ADD按钮,然后向其添加计数。
例如,如果按3次,则应创建3个组合框,名称为:
addedCombo0,addedCombo1,addedCombo2
我得到的错误显示在setName()上,它说: 类型ComboBox的方法setName(String)未定义
This is how it should look like after the ADDbutton is pressed
谢谢您的时间!
答案 0 :(得分:0)
我建议使用单独的GridPane(或VBox)来处理网格中的ComboBox。这样,每次添加comboBox时,都不需要更改网格下方所有行的行号。
类似..
<GridPane>
<children>
<VBox GridPane.rowIndex="0" GridPane.columnIndex="0" GridPane.columnSpan="2" alignment="CENTER_LEFT">
<!-- Keep adding your combo boxes here -->
</VBox>
<Button text="Add" GridPane.rowIndex="1" GridPane.columnIndex="0" />
<Label text="Heart Rate" GridPane.rowIndex="2" GridPane.columnIndex="0" />
<TextField GridPane.rowIndex="2" GridPane.columnIndex="1" />
<!-- Followed by your other rows.....>
</children>
</GridPane>