我正在使用IntelliJIdea。我想显示我在Textfield中提交的所有数字。所以我创建了一个ArrayList来将我提交的所有数字放在那里。但是,每次我按下按钮时,它都不会添加所有列表,而是只添加我提交的1个数字。如何显示我在Textfield中提交的所有数字并使用标签显示它。我使用的是单独的fxml。
在此输入图像描述
样品fxml:
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.VBox?>
<GridPane fx:controller="com.binarySearch.Controller"
xmlns:fx="http://javafx.com/fxml" alignment="TOP_LEFT" hgap="10" vgap="10">
<Label text="Please enter number" GridPane.rowIndex="0" GridPane.columnIndex="0"/>
<TextField fx:id="inputNumber" GridPane.rowIndex="1" GridPane.columnIndex="0" />
<Button text="Submit" fx:id="submit" GridPane.rowIndex="2" GridPane.columnIndex="0" onAction="#handleSubmitPress"/>
<Button text="Search" fx:id="search" GridPane.rowIndex="3" GridPane.columnIndex="0" onAction="#handleSearchPress" />
<Label text="You input: " GridPane.rowIndex="4" GridPane.columnIndex="0" />
<VBox GridPane.rowIndex="5" GridPane.columnIndex="0" >
<Label fx:id="display" />
</VBox>
</GridPane>
Controller.java
package com.binarySearch;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyEvent;
import java.util.ArrayList;
import java.util.List;
public class Controller {
@FXML
private TextField inputNumber;
@FXML
private Button submit;
@FXML
private Button search;
@FXML
private Label display;
public void handleSubmitPress() {
List<Integer> list = new ArrayList<>();
int num = Integer.parseInt(inputNumber.getText());
list.add(num);
for(int x=0; x<list.size();x++) {
display.setText(list.get(x).toString());
}
}
}
您可以在方法本身中创建一个新列表。此列表最初为空,因此在添加文本后,它包含单个元素。此外,使用setText替换标签的文本。它不指定作为文本传递的字符串的组合;它也不会添加更多标签。
将列表声明为字段可以解决第一个问题,但解决第二个问题的最佳方法可能是在VBox中添加一个新的标签,这样就不必跟踪列表中的数据:
private final List<Integer> list = new ArrayList<>();
@FXML
private VBox vbox;
public void handleSubmitPress() {
int num = Integer.parseInt(inputNumber.getText());
list.add(num);
vbox.getChildren().add(new Label(Integer.toString(num)));
}
xml prettyprint-override"> <VBox GridPane.rowIndex="5" GridPane.columnIndex="0" fx:id="vbox" />
在这里,我试图在数组中创建文本字段和标签,并将它们添加到网格窗格中,但在注释行和以后的行中会遇到问题。
问题内容: 要在Python中打印字符串和数字,除了做类似的事情外,还有其他方法: 问题答案: 在 不带括号的情况下 使用 print函数 可用于旧版本的Python,但 Python3不再支持该功能 ,因此您必须将参数放在括号内。但是,有一些变通方法,如对该问题的答案所述。由于对Python2的支持已于2020年1月1日结束,因此 答案已修改为与Python3兼容 。 您可以执行以下任一操作(并
在我试图制作的一个程序中,有三个文本字段和几个按钮(每个按钮代表一个数字)。我正在尝试获取它,这样你就可以通过点击按钮(而不是键盘)来打字了。到目前为止,我得到了这个: 在搜索互联网后,我发现了以下代码: 唯一的问题是,我不知道如何使用我找到的代码(我找到的代码是第二个块)。 我从哪里得到密码的。
我在寻找一种方法来放弃我的程序中的一个getter。我有一堆动态创建的文本字段: 下面是getter,我想在这里返回聚焦的TextField 处理程序将接收聚焦字段并调用我的“model”-class中的checkInput()方法。 此刻,它接收到一个由我自己设置的预定义字段。检查答案的代码有效。感谢任何帮助我的人,如果我自己找到了一个方法,我一定会把它贴在这里。
如何使窗格(内部包含元素)可滚动? 在FXML文件中,我放了一个ScrollPane,我希望它是可滚动的窗格。正确吗?还是我错了? 滚动ane.set内容(窗格);
我试图限制可以插入JavaFX-8文本字段的字符数:当达到限制时,调用endlinereach()方法。我想根据文本字段的大小(GUI上的可见部分)设置最大字符数。所以我使用的代码是 问题是textfield.getPrefClonCount()无法正常工作。此外,我无法以编程方式设置prefClonCount值,因为每次重新启动程序(而不是在执行期间)时,文本字段的宽度都会发生变化。文本字段是J