Взять значения из динамически создаваемых JTextFields - PullRequest
0 голосов
/ 28 апреля 2018

Как взять значения динамического текстового поля?

Я предполагаю установить желаемое количество текстовых полей в начале моей программы, установить значения в этих полях и записать его в текстовый файл

// this is the foreach loop suppose to take the values and send them to addburst function

 for( JTextField f : bt  ) 
    { 
        Burst b = new Burst();
        b.addBurst(Integer.parseInt(f.getText()));

    }

* функция addburst

public boolean addBurst(int x) {
    if (FManger.write(x, BurstFileName, true)) {
        return true;
    } else {
        return false;
    }
}

* Функция записи

 public boolean write(int Query, String FilePath, boolean appendType) {

    PrintWriter writter = null;
    try {
        System.out.print("\nwritting in ! " + FilePath);

        writter = new PrintWriter(new FileWriter(new File(FilePath), 
 appendType));
        writter.println(Query);

        System.out.println(" ... Done ! ");
        return true;
    } catch (IOException e) {
        System.out.println(e);
    } finally {
        writter.close();
    }
    return false;
   }

Я добавил динамические текстовые поля конструктором

public FillData(int x) {
    initComponents();     
    getContentPane().setBackground(Color.ORANGE);
    PnoPanel.setLayout(new GridLayout(x,2));
    BuPanel.setLayout(new GridLayout(x,2));
    ArrPanel.setLayout(new GridLayout(x,2));
    JLabel ProcessNumber[] = new JLabel[x];
    JTextField BurstTime[] = new JTextField[x];
    JTextField ArrivalTime[] = new JTextField[x];

    for (int i = 0; i < x; i++)
    {
    ProcessNumber[i] = new JLabel("            Process "+(i+1));
    BurstTime[i] = new JTextField();
    ArrivalTime[i] = new JTextField();

    PnoPanel.add(ProcessNumber[i]);
    BuPanel.add(BurstTime[i]);
    ArrPanel.add(ArrivalTime[i]);

    }
}

x - количество текстовых полей

...