需要操作事件按钮的GUI java程序

需要操作事件按钮的GUI java程序,java,swing,user-interface,actionlistener,jmenu,Java,Swing,User Interface,Actionlistener,Jmenu,我正在制作一个简单的java程序,它代表一个Microsoft Word菜单栏,在文件菜单中我添加了一个退出按钮。。。它什么也不做 我需要你的帮助,告诉我如何使退出按钮实际退出并关闭程序 这是我的密码: public class MicrosoftWordMenu { public static void main(String [] args) { JPanel panel = new JPanel(); JFrame frame

我正在制作一个简单的java程序,它代表一个Microsoft Word菜单栏,在文件菜单中我添加了一个退出按钮。。。它什么也不做

我需要你的帮助,告诉我如何使退出按钮实际退出并关闭程序

这是我的密码:

public class MicrosoftWordMenu {
        public static void main(String [] args)
        {
        JPanel panel = new JPanel();
        JFrame frame = new JFrame("Microsoft Word");
        JMenuBar bar = new JMenuBar();
        JMenu menu = new JMenu("File");
        JMenu menu1 = new JMenu("Edit");
        JMenu menu2 = new JMenu("View");
        JMenu menu3 = new JMenu("Insert");
        JMenu menu4 = new JMenu("Format");
        JMenu menu5 = new JMenu("Tools");
        JMenu menu6 = new JMenu("Table");
        JMenu menu7 = new JMenu("Window");
        JMenu menu8 = new JMenu("Help");

        frame.add(bar, BorderLayout.NORTH);
        frame.add(panel);

        bar.add(menu);
        bar.add(menu1);
        bar.add(menu2);
        bar.add(menu3);
        bar.add(menu4);
        bar.add(menu5);
        bar.add(menu6);
        bar.add(menu7);
        bar.add(menu8);

        JMenuItem menuitem = new JMenuItem("New...");
        JMenuItem menuitem1 = new JMenuItem("Open...");
        JMenuItem menuitem2 = new JMenuItem("Close");
        JMenuItem menuitem3 = new JMenuItem("Save");
        JMenuItem menuitem4 = new JMenuItem("Save as...");
        JMenuItem menuitem5 = new JMenuItem("Save as web page...");
        JMenuItem menuitem6 = new JMenuItem("Web page preview ");
        JMenuItem menuitem7 = new JMenuItem("Print ");
        JMenuItem menuitem8 = new JMenuItem("Exit");

        menu.add(menuitem);
        menu.add(menuitem1);
        menu.add(menuitem2);
        menu.add(menuitem3);
        menu.add(menuitem4);
        menu.add(menuitem5);
        menu.add(menuitem6);
        menu.add(menuitem7);
        menu.add(menuitem8);

        frame.setSize(600,100);
        frame.setVisible(true);
        }

}

在上调用
System.exit(0)
就可以了。

此时您正在创建GUI元素,但它们基本上是空的shell。特别是,您已经创建了显示在菜单上的项目,但尚未向这些项目添加任何行为。(由于您没有告诉您的程序在单击某个项目时要做什么,您认为会发生什么情况)


为了提供这种行为,您需要注册一个
ActionListener
,当元素上发生某些事情时将调用它,并允许您在该点上采取适当的操作(例如调用
System.exit(0))< /代码>详见教程。

也考虑使用以让组件共享功能,如图所示。

< P>我总是扩展AcExcaction Acaction类(它实现ActualListId接口),允许您重用您的操作。方法将在每次单击按钮时调用

public class CloseAction extends AbstractAction {

  public CloseAction() {
    super("Close");
  }

  public actionPerformed(ActionEvent e) {
    System.exit(1);  
  }

}
现在,要将上述操作应用于其中一个按钮,只需遵循下面的代码

setAction(新的CloseAction())


关闭按钮现在将在每次按下时关闭应用程序。

使用中定义的
退出功能。然后单击
退出
菜单项就像单击窗口右上角的关闭图标一样。这允许在关闭应用程序时保持一致性,以防需要关闭处理

编辑:


您好。在菜单项中添加一个ActionListener,然后调用
System.exit(0);
。@ZeissS-不要使用ActionListener,改用Action,我知道我现在把它们设为空,我会再添加一些,谢谢ActionListener,我不知道我是怎么忘记的……你能告诉我把它放在哪里吗?(我指的是系统。退出(0)的东西)我如何使它与出口一起工作button@kleopatra-+1假设ActionListener不是实现这一点的最佳方式。我建议您使用
Action
编写一个备选答案,因为我只与听众一起工作过,更全面的解释/说明对我自己和其他人都更有用谢谢你帮助了我,我学到了新的东西,但我还是不能把它应用到我的程序中!!!!为什么这么难?看起来很简单,但我无法掌握它的诀窍…有人能把它应用到我的程序中吗?我想如果我看到它是如何实现的,我会更加理解它
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
...
// JMenuItem menuitem8 = new JMenuItem("Exit");
JMenuItem menuitem8 = new JMenuItem( new ExitAction() );