【发布时间】:2017-01-13 19:46:36
【问题描述】:
我正在尝试通过使用 JMenuItem 创建 JButton。我有一个新员工 JMenuItem,单击它会打开一个带有四个 JTextField 的框架:员工姓名、员工 IDNumber、员工工资率和员工工作时间,以及一个 JButton,应用。在用户将数据输入到 JTextFields 并点击 Apply JButton 后,主窗口应该添加一个带有输入数据的 JButton。
这是程序显示的代码
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 组件中存储的数据保存到字段中,但是我无法使用应用按钮在主程序窗口中成功创建JButton。
感谢任何帮助和帮助!
【问题讨论】:
-
您的 Program Display JFrame 必须知道 NewListener 中 JText 字段内的文本,否则它将无法提取新输入的文本。
-
一旦程序显示知道什么名字,employeeID 等。是,您需要抓住有问题的按钮,然后根据名称、员工 ID 等更改按钮的属性。
标签: java jbutton jmenuitem jmenubar