setSize(500,400);
try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
setJMenuBar(mb); setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/******把菜单项加到菜单上******/ private void addFileMenu() {
m1.add(open); m1.add(save); m1.add(save_as); m1.addSeparator(); m1.add(exit); m1.setFont(t); m1.add(n);
catch(Exception e){System.err.println(\不能设置外观的原 c = getContentPane(); c.add(new JScrollPane(editor)); addFileMenu();
addEditMenu(); addFormMenu(); addHelpMenu(); addJMenuBar(); addJPopupMenu();
因;\
}
private void addEditMenu() {
m2.add(copy);
m2.add(cut); m2.addSeparator(); m2.add(paste); m2.setFont(t); }
private void addFormMenu() {
m3.add(f1); m3.add(color); m3.setFont(t);
f1.add(i11); f1.add(i12); f1.add(i13);
color.add(i21); color.add(i22); color.add(i23);
private void addHelpMenu() { }
m4.add(about); m4.setFont(t); }
private void addJMenuBar() {
mb.add(m1);
mb.add(m2); mb.add(m3); mb.add(m4); mb.setBackground(Color.cyan);
}
private void addJPopupMenu() {
editor.add(pm); pm.add(item1); pm.add(item2); pm.add(item3);
}
public static void main(String arg[]){new JM();} }
4.2 JM4类的实现
import java.io.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.Font.*; public class
JM4
extends
ActionListener,MouseListener//EventListener
{ int flag=0; public JM4()
{
/**********监听器接口**********/ JM
implements
n.addActionListener(this); open.addActionListener(this); save.addActionListener(this); save_as.addActionListener(this); exit.addActionListener(this); copy.addActionListener(this); cut.addActionListener(this); paste.addActionListener(this); i11.addActionListener(this); i12.addActionListener(this); i13.addActionListener(this); i21.addActionListener(this); i22.addActionListener(this); i23.addActionListener(this); about.addActionListener(this); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); editor.addMouseListener(this);
addWindowListener(new windowListener()); 4.3 事件处理
4.3.1 编辑区键盘事件处理
/***************编辑区键盘事件******************/ editor.addKeyListener( new KeyAdapter() }
4.3.2 窗口事件处理
/**************窗口监听器**************/ {public void keyTyped(KeyEvent e){flag=1;}});
class windowListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {
if(flag==0)System.exit(0); else close();
} }
4.3.3 菜单项事件处理
/***************菜单项监听器****************/ public void actionPerformed(ActionEvent e)
if(mi==n) //新建 {
if(flag==0) editor.setText(\ else close2();
if(mi==open) //打开
if(mi==save||mi==save_as) //保存和另存为
if(mi==copy) //复制 {saveFile();}
{loadFile();} } {
Font f2=editor.getFont();
JMenuItem mi=(JMenuItem) e.getSource();
if(mi==exit) //退出
{if(flag==0)System.exit(0); close();}