需要操作事件按钮的GUI java程序
我正在制作一个简单的java程序,它代表一个Microsoft Word菜单栏,在文件菜单中我添加了一个退出按钮。。。它什么也不做 我需要你的帮助,告诉我如何使退出按钮实际退出并关闭程序 这是我的密码:需要操作事件按钮的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
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() );