オーガナイザー/スケジューラーを模倣する GUI を作成しようとしていますが、ユーザーがタスクを入力するためのフィールドをさらに挿入すると問題が発生します。私のコードでは、フィールドを追加するためのボタンとそれらを送信するためのボタンが指定されていますが、ユーザーがフィールドを追加することを選択した場合、現在のフィールドにのみアクセスできますが、送信時に以前のフィールドにはアクセスできません。以前のフィールドにアクセスするにはどうすればよいですか?
import javax.swing.JTextField;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.util.*;
class Organizer extends JPanel implements ActionListener
{
protected JTextField dateText,taskText, priorityText;
Button addField;
Button submit;
JPanel panel;
Vector<String> Dates = new Vector();
Vector<String> Tasks = new Vector();
Vector<String> Priority = new Vector();
public void createWindow()
{
JFrame frame = new JFrame ("Organizer");
panel = new JPanel();
frame.setVisible(true);
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
addField = new Button("(+)");
addField.addActionListener(this);
panel.add(addField);
submit = new Button ("submit");
submit.addActionListener(this);
panel.add(submit);
addFields();
}
public void addFields()
{
dateText = new JTextField("Enter Date(mon/dd/yyyy)",30);
taskText = new JTextField("Enter Task",30);
priorityText = new JTextField("Rate importance(10-high,1-low)",30);
panel.add(dateText);
panel.add(taskText);
panel.add(priorityText);
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource() == addField)
{
addFields();
panel.revalidate();
panel.repaint();
}
if(evt.getSource() == submit)
{
String temp = dateText.getText();
System.out.println(temp);
//Dates.addElement(temp);
//System.out.println(Dates);
}
}
public static void main (String[] args)
{
Organizer Org = new Organizer();
Org.createWindow();
}
}