Прежде всего, я новичок в java. Я хотел бы генерировать формы динамически на основе массивов, я смог генерировать поля, но я не знаю, как их читать, я не мог найти что-то вроде индекса текстового поля или чего-то еще. Так что в основном я спрашиваю, как читать значения из компонента TextField, который не имеет ссылки. JTextField myText = new JTextField() vs new JTextField(), добавленный в панель Ниже приведен простой пример кода, любая идея приветствуется.Создание динамической формы из вектора или массива
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame{
private JPanel p1 = new JPanel();
private JButton btn = new JButton("Read Data");
public Test(){
super("Dynamic Form");
setLayout(new GridLayout(4,2));
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
// Declare the Array with fields
String[] fList = new String[3];
fList[0] = "id";
fList[1] = "firstName";
fList[2] = "lastName";
//Iterate fields array and add elements
for(int i = 0; i<fList.length; i++){
add(new JLabel(fList[i]));
add(new JTextField("field: "+fList[i]));
}
add(p1);
add(btn);
btn.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent ev){
String id = "id field value is: "; // + some code to get actual text field value
String firstName = "firstName field value is: "; // + some code to get actual text field value
String lastName = "lastName field value is: "; // + some code to get actual text field value
System.out.println(id+ " " + firstName + " " + lastName);
}
}
);
pack();
setLocationRelativeTo(null);
setResizable(true);
setVisible(true);
}
public static void main(String [] args){
new Test();
}
}
Вы де понимают, что хотя векторы и массивы могут каждый трюм коллекцию объектов, они это совершенно разные структуры данных, не так ли? Я спрашиваю, потому что название упомянутых векторов, но тело только массивы. –
На самом деле, в конце концов, я буду использовать ArrayList объектов, но для самого вопроса я попытался сохранить его простым. Обратная связь приветствуется в любом случае. – Cristian