首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MenuItem的作用

MenuItem的作用
EN

Stack Overflow用户
提问于 2018-10-20 10:28:42
回答 1查看 58关注 0票数 2

我想要创建一个程序,它包含有三个选项的菜单:

  • 联系人
  • 日期
  • 帮助

哪一个选项有子选项

因此,当我从第一个子选项的第一个选项中选择"New"时,我想添加我的客户信息。

我用item menu来做这个。这就是我下面的代码,正如您所看到的:我必须使用什么方法来完成这个操作,以及之后的其他操作呢?

代码语言:javascript
复制
   class angenda{
    private String name;
    private String surname;
    private int telephone;

    public angenda(){
        name="";
        surname="";
        telephone=0;        
    }

    public void setName(String n) {
        n=name;
    }
    public String getName() {
        return name;
    }
    public void setSurname(String s) {
        s=surname;
    }
    public String getSurname() {
        return surname;
    }
    public void setTelephone(int t) {
        t=telephone;
    }
    public int getTelephone() {
        return telephone;
    }
}
public class Main extends Frame {

     MenuBar bar;
     Menu Contacts,Dates,Help;
     MenuItem itemContacts[],itemDates[],itemHelp[];     
     TextField name;
     TextField surname;
     TextField telephone;
    public static void main(String[] args) {
        Main m=new Main();
        m.show();
        m.setTitle("e-agenda");
        m.setSize(500, 500);
        //an to sintajo etsi:
        //JFrame f = new JFrame()


    }
    Main() {        
        setLayout(new FlowLayout());
        itemContacts=new MenuItem[6];   
        itemDates=new MenuItem[4];
        itemHelp=new MenuItem[4];
        itemContacts[0]=new MenuItem("New");
        itemContacts[1]=new MenuItem("Load");
        itemContacts[2]=new MenuItem("Save");
        itemContacts[3]=new MenuItem("Delete");
        itemContacts[4]=new MenuItem("Update");
        itemContacts[5]=new MenuItem("Exit");

        itemDates[0]=new MenuItem("New");
        itemDates[1]=new MenuItem("Load");
        itemDates[2]=new MenuItem("Save");
        itemDates[3]=new MenuItem("Cancel");
        itemHelp[0]=new MenuItem("sss");
        itemHelp[1]=new MenuItem("Info");

        Contacts=new Menu("CONTACTS");
        Dates=new Menu("DATES");
        Help=new Menu("HELP");
        for(int i=0; i<6; i++) {            
            Contacts.add(itemContacts[i]);          
        }
        for (int i=0; i<4; i++)     {
            Dates.add(itemDates[i]);            
        }
        for (int i=0; i<2; i++)     {
            Help.add(itemHelp[i]);
        }
        bar=new MenuBar();
        bar.add(Contacts);
        bar.add(Dates);
        bar.add(Help);
        setMenuBar(bar);            


    }   

    public boolean action(Event event, Object arg) {
        if(event.target instanceof MenuItem)
        {
            String text=(String)arg;            
            if (text.equals("New")) {
                name.getText();
            }
            if(text.equals("Exit")) {
                System.exit(0);
            }

        }
        else
            super.action(event, arg);
        return true;    


    }

}

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-10-20 11:24:20

代码语言:javascript
复制
public class MenuDemo extends JFrame implements ActionListener {

    public static void main(String... args) {
        SwingUtilities.invokeLater(() -> new MenuDemo().setVisible(true));
    }

    public MenuDemo() {
        init();
    }

    private void init() {
        setLayout(new BorderLayout(5, 5));
        add(new JScrollPane(createMainPanel()), BorderLayout.CENTER);
        setJMenuBar(createMenuBar());
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setTitle("e-agenda");
        setSize(500, 500);
        centerToScreen();
    }

    public void centerToScreen() {
        Dimension size = getToolkit().getScreenSize();
        setLocation(size.width / 2 - getWidth() / 2, size.height / 2 - getHeight() / 2);
    }

    private JPanel createMainPanel() {
        JPanel panel = new JPanel();
        panel.setBackground(Color.gray);
        return panel;
    }

    private JMenuBar createMenuBar() {
        JMenuBar menuBar = new JMenuBar();
        menuBar.add(createContactsMenu());
        menuBar.add(createDatesMenu());
        menuBar.add(createHelpMenu());
        return menuBar;
    }

    private static final String MENU_CONTACTS_NEW = "contacts.new";
    private static final String MENU_CONTACTS_LOAD = "contacts.load";
    private static final String MENU_CONTACTS_SAVE = "contacts.save";
    private static final String MENU_CONTACTS_DELETE = "contacts.delete";
    private static final String MENU_CONTACTS_UPDATE = "contacts.update";
    private static final String MENU_CONTACTS_EXIT = "contacts.exit";

    private JMenu createContactsMenu() {
        JMenu menu = new JMenu("Contacts");
        menu.add(createMenuItem("New", MENU_CONTACTS_NEW));
        menu.add(createMenuItem("Load", MENU_CONTACTS_LOAD));
        menu.add(createMenuItem("Save", MENU_CONTACTS_SAVE));
        menu.add(createMenuItem("Delete", MENU_CONTACTS_DELETE));
        menu.add(createMenuItem("Update", MENU_CONTACTS_UPDATE));
        menu.add(createMenuItem("Exit", MENU_CONTACTS_EXIT));
        return menu;
    }

    private static final String MENU_DATES_NEW = "dates.new";
    private static final String MENU_DATES_LOAD = "dates.load";
    private static final String MENU_DATES_SAVE = "dates.save";
    private static final String MENU_DATES_CANCEL = "dates.cancel";

    private JMenu createDatesMenu() {
        JMenu menu = new JMenu("Dates");
        menu.add(createMenuItem("New", MENU_DATES_NEW));
        menu.add(createMenuItem("Load", MENU_DATES_LOAD));
        menu.add(createMenuItem("Save", MENU_DATES_SAVE));
        menu.add(createMenuItem("Cancel", MENU_DATES_CANCEL));
        return menu;
    }

    private static final String MENU_HELP_INFO = "help.info";

    private JMenu createHelpMenu() {
        JMenu menu = new JMenu("Help");
        menu.add(createMenuItem("Info", MENU_HELP_INFO));
        return menu;
    }

    private JMenuItem createMenuItem(String text, String actionCommand) {
        JMenuItem item = new JMenuItem(text);
        item.setActionCommand(actionCommand);
        item.addActionListener(this);
        return item;
    }

    @Override
    public void actionPerformed(ActionEvent event) {
        String command = event.getActionCommand();
        System.out.println(command);

        if (MENU_CONTACTS_EXIT.equals(command))
            onCommandsExit();
    }

    private void onCommandsExit() {
        dispose();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52904661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档