Java如何实现根据输入整数创建对应数量JTextField的方法
创建指定数量JTextField的方法实现
原有代码问题分析
- 方法返回值定义为单个
JTextField类型,本身不支持返回多个文本框实例 - 循环内部定义的
slot变量作用域仅局限于单次循环的代码块,循环结束后外部无法访问该变量,也无法拿到历史循环创建的所有实例
解决方案
我们可以将方法返回值改为集合或数组类型,在循环外部提前初始化存储容器,每次循环将新创建的JTextField存入容器,最后返回整个容器即可。
方案1:使用List作为返回值(推荐,扩容灵活易用)
import javax.swing.JTextField; import java.util.ArrayList; import java.util.List; static List<JTextField> createSlot(int number) { List<JTextField> slotList = new ArrayList<>(); for (int i = 0; i < number; i++) { JTextField slot = new JTextField(); slotList.add(slot); } return slotList; }
调用示例:调用createSlot(5)会返回包含5个JTextField实例的List集合,可直接遍历使用所有文本框。
方案2:使用数组作为返回值
import javax.swing.JTextField; static JTextField[] createSlot(int number) { JTextField[] slotArray = new JTextField[number]; for (int i = 0; i < number; i++) { slotArray[i] = new JTextField(); } return slotArray; }
内容的提问来源于stack exchange,提问作者zoe
相关产品推荐
相关产品推荐

