Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中注册Jmenus的事件处理程序_Java_Swing_Actionlistener_Jmenu - Fatal编程技术网

如何在java中注册Jmenus的事件处理程序

如何在java中注册Jmenus的事件处理程序,java,swing,actionlistener,jmenu,Java,Swing,Actionlistener,Jmenu,因此,我正在处理一项任务,我只是被Java GUI卡住了,将事件注册到Jmenus,这是到目前为止的问题和我的代码:完成FrontEnd.java,它将允许用户注册客户端并查看所有注册的客户端。当用户单击“打开”菜单项时,应用程序将在桌面上显示“frmClient”表单。用户将填写客户名称、姓氏、地址(街道名称、门牌号、城市和区号以“,”逗号分隔)、客户id和访问目的。因此,当用户单击“保存客户端”菜单项时,应用程序将收集值以填充客户端对象,并使用FileManager将其保存在“Clients

因此,我正在处理一项任务,我只是被Java GUI卡住了,将事件注册到Jmenus,这是到目前为止的问题和我的代码:完成FrontEnd.java,它将允许用户注册客户端并查看所有注册的客户端。当用户单击“打开”菜单项时,应用程序将在桌面上显示“frmClient”表单。用户将填写客户名称、姓氏、地址(街道名称、门牌号、城市和区号以“,”逗号分隔)、客户id和访问目的。因此,当用户单击“保存客户端”菜单项时,应用程序将收集值以填充客户端对象,并使用FileManager将其保存在“ClientsRecords.txt”上。此外,如果用户单击“读取所有客户端”菜单 项,应用程序将读取所有注册的客户端,并使用FileManager将它们显示在名为“recordArea”的textArea上。最后,当用户单击“退出”菜单项时,应用程序将关闭应用程序。请参见图1以获取说明

public class FrontEnd extends JFrame 
{

private JMenuBar menuBar = new JMenuBar();
private JMenu fileMenu = new JMenu("File");
private JMenuItem openItem = new JMenuItem("Open");
private JMenuItem exitItem = new JMenuItem("Exit");

private JMenuItem saveItem = new JMenuItem("Save Client");
private JMenuItem readItem = new JMenuItem("Read All Clients");
private JTextArea recordsArea = new JTextArea(20, 30);
private JDesktopPane desktop = new JDesktopPane();
private JInternalFrame frmClient = new JInternalFrame("Register Client ", true, true, true);
private JLabel lblName = new JLabel("Enter Client name");

private JLabel lblSurname = new JLabel("Enter Client surname");
private JLabel lblAddress = new JLabel("Enter Address street, houseNo, city, areaCode");
private JLabel lblClientID = new JLabel("Enter Client ID");
private JLabel lblPurpose = new JLabel("Enter purpose of visit");

private JTextField txtName = new JTextField(15);
private JTextField txtSurname = new JTextField(15);
private JTextField txtAddress = new JTextField(15);
private JTextField txtClientID = new JTextField(15);

private JTextField txtPurpose = new JTextField(15);
static Client[] client;

int rows = 0;

public FrontEnd() {
    setSize(600, 400);
    setLocation(10, 10);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setTitle("Client Management");
    setJMenuBar(menuBar);

    menuBar.add(fileMenu);

    fileMenu.add(openItem);
    fileMenu.add(saveItem);
    fileMenu.add(readItem);
    fileMenu.add(exitItem);

    saveItem.addActionListener(new StoreHandler());
    readItem.addActionListener(new AdHandler());

    frmClient.setSize(600, 400);
    frmClient.setLocation(10, 10);
    frmClient.setLayout(new BorderLayout());
    JPanel leftPane = new JPanel();
    leftPane.setLayout(new GridLayout(6, 2));
    leftPane.add(lblName);
    leftPane.add(txtName);
    leftPane.add(lblSurname);
    leftPane.add(txtSurname);
    leftPane.add(lblAddress);
    leftPane.add(txtAddress);
    leftPane.add(lblClientID);
    leftPane.add(txtClientID);
    leftPane.add(lblPurpose);
    leftPane.add(txtPurpose);
    leftPane.setBorder(BorderFactory.createTitledBorder("Register"));
    JPanel rightPane = new JPanel();
    rightPane.setBorder(BorderFactory.createTitledBorder("View Details"));
    JScrollPane scrollpane = new JScrollPane(recordsArea);
    rightPane.add(scrollpane);
    frmClient.add(leftPane, BorderLayout.WEST);
    frmClient.add(rightPane, BorderLayout.CENTER);
    //add the desktop for multiple frames
    add(desktop);

}

public static void main(String[] args) {
    FrontEnd frontEnd;
    frontEnd = new FrontEnd();
    frontEnd.setVisible(true);

    int numberOfClients = Integer.parseInt(JOptionPane.showInputDialog(null, "How many clients do you want to register?"));
    client = new Client[numberOfClients];
}

private class AddHandler implements ActionListener {

    public void actionPerformed(ActionEvent evt) {
        String name,
        surname,
        address,
        clientID,
        purposeOfVisit;
        name = txtName.getText();
        surname = txtSurname.getText();
        address = txtAddress.getText();
        clientID = txtClientID.getText();
        purposeOfVisit = txtPurpose.getText();
        if (client.length() > row) {
            client[row] = new Client(name, surname, address, clientID, purposeOfVisit);
            row++;
        }
        else {

            JOptionPane.showMessageDialog(null, "All records are added");
        }

    }

}

private class StoreHandler implements ActionListener {

    public void actionPerformed(ActionEvent evt) {
        FileManager manage = new FileManager();

        try {
            manage.registerClient("c:\\data\\client.txt", client);
            JOptionPane.showMessageDialog(null, "All records are stored");

        }
        catch(Exception er) {
            JOptionPane.showMessageDialog(null, "Error occured" + er.getMessage());
        }

    }

}
private class DisplayHandler implements ActionListener {

    public void actionPerformed(ActionEvent evt) {
        FileManager manage = new FileManager();

        try {

            Client[] clientRecords = manage.readClients("c:\\data\\client.txt");
            for (Client record: clientRecords) {
                recordsArea.append(record.toString());

            }
        }
        catch(Exception er) {
            JOptionPane.showMessageDialog(null, "Error occured" + er.getMessage());
        }

    }

}
}

将事件注册到Jmenus,-您不能在Jmenus上处理事件。将
ActionListener
添加到
JMenuItem
中。有关更多信息和工作示例,请阅读上Swing教程的部分。