dow中调用上述三种类中的方法以实现监听器,将其放在类FirstWindow的外部,增强代码的可读性,具体实现过程如下:
(1)、FirstWindow类
①先对所要建立的各个组件进行声明,如JMenuBar menubar; JMenu menu1,menu2,menu3,menu4; JTextArea text1; JCheckBoxMenuItem box;在构造方法FirstWindow中对所要建立的窗体进行初始化,代码如下:
setTitle(s); //设置标题
setSize(550,600); //设置窗口大小
setLocation(240,120); //设置窗口位置
setVisible(true); //设置窗口是否可见
validate(); //添加组件、文本后进行刷新
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置缺省关闭方式
②创建了各个组件,包括菜单条menubar、菜单、菜单项、按钮、文本区text1、工具条jtb、文件选择fileChooser、菜单项复选框box,应用到的类有JMenuBar、Jmenu、JmenuItem、Jbutton、JtextArea、JtoolBar、JfileChooser、JcheckBoxMenuItem;并为一些菜单项添加快捷方式以及图标,使用到以下代码(并非全部代码,仅用其中部分为例,下同):
itemnew=new JMenuItem("新建(N)",new ImageIcon("new.gif"));
itemnew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
③调用add方法将组件添加到窗体、菜单项添加到菜单、菜单添加到菜单条、按钮添加到工具栏中,代码如下:
menu1.add(itemnew); //菜单项添加到菜单
menubar.add(menu1); //菜单添加到菜单条
pm.add(itemcut1); //菜单项添加到弹出菜单
toolbox.add(new1); //添加工具栏项
④为鼠标添加鼠标事件,应用匿名类方法,实现右击鼠标弹出一个弹出菜单,进行相应操作,代码如下:
text1.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
if(e.getModifiers()==InputEvent.BUTTON3_MASK){
pm.show(text1,e.getX(),e.getY());
}
}
});
⑤添加窗口事件,当点击关闭时,出现一定的保存提示
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
int n1=JOptionPane.showConfirmDialog(null, "是否在关闭前保存当前文
件?","确认对话框",JOptionPane.YES_NO_OPTION);}}
出现的效果如图:
⑥为各个组件添加监听器,即
注册监听器过程,以实现其相应功能,代码如下:
itemcut.addActionListener(this); //设置菜单项的监听器
open1.addActionListene