Я пытаюсь создать JButtons с помощью JMenuItem. У меня есть новый сотрудник JMenuItem, который при щелчке открывает рамку с четырьмя JTextFields: имя сотрудника, идентификатор сотрудника, номер заработной платы сотрудника и рабочие часы, а также один JButton, Apply. После того, как пользователь вводит данные в JTextFields и нажимает Apply JButton, основное окно должно добавить JButton с введенными данными.Как создать JButtons с помощью JMenuItem и ActionListener
Вот код для дисплея программы
public ProgramDisplay() {
setTitle("Fluid Accounts");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(5, 5));
account = new JButton("<html>" + "Samuel Tayman" + "<br>" + "Wages: " + findPay(hours, payRate));
add(account);
account = new JButton("<html>" + "Janice" + "<br>" + "Wages: " + findPay(hours, payRate));
add(account);
buildMenuBar();
pack();
setVisible(true);
}
А вот код для нового сотрудника JMenuItem
с ActionListener
:
private void buildEmployeeMenu()
{
newEmployee = new JMenuItem("New Employee");
newEmployee.addActionListener(new NewListener());
employeeMenu = new JMenu("Employees");
employeeMenu.add(newEmployee);
}
/**
* Private inner class that handles the event that is generated when the
* user selects New from the file menu.
*/
private class NewListener extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
name = "";
employeeID = "";
rateOfPay = "";
hoursWorked = "";
JButton Apply = new JButton("Apply");
Apply.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
name = nameField.getText();
employeeID = IDField.getText();
rateOfPay = payRateField.getText();
hoursWorked = hoursField.getText();
setVisible(false);
}
});
setLayout(new GridLayout(4, 4));
add(nameField = new JTextField("Enter the Employee Name"));
add(IDField = new JTextField("Enter the Employee's ID Number"));
add(payRateField = new JTextField("Enter the Employee's Pay Rate"));
add(hoursField = new JTextField("Enter the Employee's Hours Worked"));
add(Apply);
pack();
setVisible(true);
}
}
Example of current running program
Я сделал это так что данные, хранящиеся в компонентах textField
, сохраняются в полях, однако я не смог успешно создать e a JButton
в главном окне программы с помощью кнопки «Применить».
Любая помощь и помощь приветствуются!
ваша программа Display JFrame будет знать о тексте внутри полей JText в NewListener иначе он не сможет извлечь вновь введенный текст. –
Как только Дисплей программы узнает, какое имя, employeeID ect. вам нужно взять эту кнопку, а затем изменить атрибуты кнопки в соответствии с именем, employeeID ect. –