J'essaye de créer des JButtons en utilisant un JMenuItem. J'ai un nouvel employé JMenuItem qui, lorsqu'il est cliqué, ouvre un cadre avec quatre JTextFields: nom de l'employé, numéro d'identification de l'employé, taux de rémunération des employés et heures de travail des employés, et un JButton, Apply. Une fois que l'utilisateur a entré les données dans JTextFields et qu'il a tapé sur Apply JButton, la fenêtre principale est censée ajouter un JButton avec les données entrées.Comment créer des JButtons en utilisant JMenuItem et ActionListener
Voici le code pour l'affichage du programme
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);
}
Et voici le code pour le nouvel employé JMenuItem
avec le 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
Je l'ai fait de sorte que les données stockées dans les composants textField
sont enregistrées dans les champs, mais je n'ai pas réussi à créer e a JButton
dans la fenêtre principale du programme en utilisant le bouton Appliquer.
Toute aide et assistance est appréciée!
votre programme JFrame d'affichage devez savoir sur le texte à l'intérieur des champs JText dans le NewListener sinon il ne sera pas en mesure de extraire le texte nouvellement entré. –
Une fois que l'affichage du programme connaît le nom, employeeID ect. sont, vous devrez saisir le bouton en question, puis modifier les attributs du bouton en fonction du nom, employeeID ect. –