Java:有没有更有效的方法将JFrame元素写入数组
这是我第一次发帖,如果问题太模糊或者我没有很好地描述我的问题,我深表歉意
我正在从事一个JavaJFrame项目,遇到了一个小问题。我需要实例化各种JFrame元素的数组。到目前为止,我所做的工作是有效的,但是效率很低,我想知道是否有更好、更简单的方法来完成这项任务。NetBeans生成的代码根据我提供的变量名实例化了我的对象。然后我写了一个方法,在这里我手动输入数组,以及等于哪个元素。以下是自动生成的代码:
private javax.swing.JTextField activityStartTxt0;
private javax.swing.JTextField activityStartTxt1;
private javax.swing.JTextField activityStartTxt2;
private javax.swing.JTextField activityStartTxt3;
private javax.swing.JTextField activityStartTxt4;
相同的代码用于实例化五个activityEndTxt、5天Dropbox、5天StartDropbox和5天Dropbox
然后我将这些元素写入数组
public void addArrays(){
dayDropBox[0] = dayDropBox0;
dayDropBox[1] = dayDropBox1;
dayDropBox[2] = dayDropBox2;
dayDropBox[3] = dayDropBox3;
dayDropBox[4] = dayDropBox4;
activityStartTxt[0] = activityStartTxt0;
activityStartTxt[1] = activityStartTxt1;
activityStartTxt[2] = activityStartTxt2;
activityStartTxt[3] = activityStartTxt3;
activityStartTxt[4] = activityStartTxt4;
timeStartDropBox[0] = timeStartDropBox0;
timeStartDropBox[1] = timeStartDropBox1;
timeStartDropBox[2] = timeStartDropBox2;
timeStartDropBox[3] = timeStartDropBox3;
timeStartDropBox[4] = timeStartDropBox4;
activityEndTxt[0] = activityEndsTxt0;
activityEndTxt[1] = activityEndsTxt1;
activityEndTxt[2] = activityEndsTxt2;
activityEndTxt[3] = activityEndsTxt3;
activityEndTxt[4] = activityEndsTxt4;
timeEndDropBox[0] = timeEndDropBox0;
timeEndDropBox[1] = timeEndDropBox1;
timeEndDropBox[2] = timeEndDropBox2;
timeEndDropBox[3] = timeEndDropBox3;
timeEndDropBox[4] = timeEndDropBox4;
}
提前谢谢你的帮助
# 1 楼答案
我假设您保存这些字段是为了能够一起访问它们,可能是为了
for (JTextField textField : textFeilds)....
之类的东西我这样做的方式是使用
Arrays.asList
并将它们保存到List
而不是数组中。我也有优势流媒体示例(假设要清除所有文本字段的文本):
# 2 楼答案
使用如下所示的数组:
注意:我不确定
dayDropBox0
、dayDropBox1
等的类型。用适用的类型替换DropBox[]
# 3 楼答案
我不知道这是否是您特别想要的,但您可以尝试使用for循环