Что ж, я просмотрел весь интернет и просто не смог найти ответ на этот вопрос, поэтому, возможно, кто-то сможет дать некоторую информацию.
Я работаю над созданием относительно простого Java-приложения, которое заменит документ Word, используемый в настоящее время для запросов доступа к системе. Он предназначен для ввода в форму новой информации о найме сотрудников - имени, необходимого доступа и т. Д.
Итак, вот моя проблема. Попытка сделать GUI со всеми текстовыми полями и всем на удивление болезненно. Поскольку каждый виджет немного отличается, получение ввода после заполнения формы, похоже, требует отдельной ссылки для каждого виджета, поэтому я могу вызывать их по отдельности. Это означает, что каждая панель для раздела имеет 6-10 различных приватных полей. (Я попытался добавить все похожие виджеты в список и вызвать их в цикле, но это не сработало.)
Кажется, что веб-форма в некотором роде подойдет для этого лучше, но у меня нет инфраструктуры для этого. Кто-нибудь там нашел лучшее решение, чем это для чего-то подобного? Это похоже на тонну кода. Пожалуйста, см. Ниже для идеи (я вставил некоторые комментарии, а не фактический код, потому что это так долго). Спасибо за внимание!
private JComboBox my_dates;
private JTextField my_date1;
private JTextField my_date2;
private JTextField my_request_date;
private JTextField my_new_legal_name;
private JTextField my_new_pref_name;
private JTextField my_new_username;
private JTextField my_prev_legal_name;
private JTextField my_prev_pref_name;
private JTextField my_prev_username;
private JTextField my_emp_id;
private JTextField my_manager;
private JTextField my_auth_requestor;
private JTextField my_auth_phone;
public NameChangePanel(FormSection the_section)
{
super();
initialize();
buildPanel(the_section.getFields());
}
private void initialize()
{
// Create all the widgets individuall
}
private void buildPanel(List the_fields)
{
// add a field label
// add a component
// repeat for all values
}
public List getFormValues()
{
// Call all of the private fields individually
return values;
}
}