如何避免反复实现组件

Viv*_*aya 0 java swing

例如,我有20个不同JTextField,让我说我需要将文本设置为所有"随机",所以我不想这样做:

field1.setText("Random");
field2.setText("Random");
field3.setText("Random");
.
.
.
field20.setText("Random");
Run Code Online (Sandbox Code Playgroud)

有办法避免这种情况吗?

Dic*_*ici 7

这是一个非常基本的问题.你可以这样做 :

Stream.of(field1,field2,...,field3).forEach(f -> f.setText("Random"));
Run Code Online (Sandbox Code Playgroud)

或没有Java 8:

JTextField fields = Arrays.asList(field1,field2,...,field3);
for (JTextField field : fields)
    field.setText("Random");
Run Code Online (Sandbox Code Playgroud)

或者,如果您不需要保留对您的字段的引用:

for (int i=0 ; i<20 ; i++) {
    JTextField field = new JTextField("Random");
    // place your field in the UI
}
Run Code Online (Sandbox Code Playgroud)