我有一个GUI,在顶部有一个输入值字段,带有一个将值添加到数组的按钮。数组在它下面,以10个标记为0-9的空jtextbox的形式出现。当用户在数值文本框中输入数字并单击"添加"时,该数字将被放入下面的文本框中。一旦数组被填充,我将找到最小值和最大值。我对排序背后的逻辑没有问题,找到最小值,找到最大值,但是我很难理解加载数组背后的逻辑,我试图使用几种不同的策略。
//This is my start of the on_click event for the add button
jTextboxValue.getText(); //I know that this gets me the text from the box
jTextboxvalueArray0.setText(); // I know this is how I set the text in the various boxes
我的问题是,什么是最简洁的方式来实例化和加载这个数组,如果它是一个控制台应用程序,我会这样做:
Scanner input = new Scanner(System.in);
int array[] = new int[10];
System.out.println("Please enter your Values.");
for (int i = 0 ; i < array.length; i++ ) {
int next = input.nextInt();
现在,当涉及到在GUI中执行此操作时,我被难住了,这已经成为我一段时间以来反复出现的困惑来源。我读了oracle教程,几本java书籍,但什么都没有点击。如何将工作在控制台中的逻辑转移到GUI中?
建议:
- 考虑使用JTextFields数组(JTextBox到底是什么?),比如叫做textFields。
- 给你的gui一个int索引变量,初始化为0。
- 当用户在输入字段中输入数字并按下正确的按钮时,通过
getText()
从输入JTextField中获取文本,并将其放入本地字符串变量 - 然后将该变量传递给textFields数组的索引项
textFields[index].setTexzt(text)
的setText(text)
方法。 - 增加索引变量
index++
。
注意:为什么不简单地让用户输入他们所有的数字直接到每个JTextField的textFields数组,然后让他们按评估JButton时完成?为什么要尝试自己填充JTextFields,因为state是您的目标?
使用单个JTextField
作为主要用户输入。在它旁边有一个JButton
,作为"添加"机制。
单击add时,将值添加到JList
中。不要太关注数组,因为它只是在妨碍你。您可以管理JList
的模型,以确定何时有您需要/想要的任何数量限制(如果您需要/想要一个)。
参见如何使用列表了解更多详细信息