ccopy.addActionListener(action); ppaste.addActionListener(action); ddelete.addActionListener(action); sselectall.addActionListener(action);
text.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent event){
}
public void mouseReleased(MouseEvent event){ checkForTriggerEvent(event);
}public void checkForTriggerEvent(MouseEvent event){
if(event.isPopupTrigger()){ filepopup.show(event.getComponent(),event.getX(),event.getY()); }
}}); }
checkForTriggerEvent(event);
(4)打开、保存、复制、粘贴、撤销等功能事件响应实现:
//事件处理
ActionListener action = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{ JMenuItem mi = (JMenuItem)e.getSource(); String id = mi.getText(); if(id.equals(\新建\
Date date=new Date();
text.setText(date.toString()); file = null;
}else if(id.equals(\打开...\ if(file != null)
filechooser.setSelectedFile(file);//为用户选择文件提供了一种简单的机制
- 7 -
int returnVal = filechooser.showOpenDialog(MiniText.this); if(returnVal == JFileChooser.APPROVE_OPTION){ file = filechooser.getSelectedFile();
openFile(); } } else if(id.equals(\保存...\ if(file != null)
filechooser.setSelectedFile(file);
int returnVal = filechooser.showSaveDialog(MiniText.this); if(returnVal == JFileChooser.APPROVE_OPTION){ file = filechooser.getSelectedFile(); saveFile();
JOptionPane.showMessageDialog(null,\已保存\ }}
else if(id.equals(\另存为\ if(file != null)
filechooser.setSelectedFile(file);
int returnVal = filechooser.showSaveDialog(MiniText.this); if(returnVal == JFileChooser.APPROVE_OPTION){ file = filechooser.getSelectedFile();
saveFile();
JOptionPane.showMessageDialog(null,\已保存\ } } else if(id.equals(\打印\ }
prt.printDialog();
else if(id.equals(\打印页面设置\ try {
prt.print();
} catch(Exception ew){
JOptionPane.showMessageDialog(null,\
打
印
出
错
!\
错
误
\ } }
else if(id.equals(\退出\System.exit(0); }else if(id.equals(\剪切\剪切(T)\ text.cut();
}else if(id.equals(\复制\复制(C)\
text.copy();
}else if(id.equals(\粘贴\粘贴(V)\ text.paste(); }
else if(id.equals(\删除\删除(D)\
text.replaceSelection(\ }
else if(id.equals(\选择全部\全选(A)\ text.selectAll();
}else if(id.equals(\字体颜色...\
color = JColorChooser.showDialog(MiniText.this,\字体颜色设置\
text.setForeground(color);
- 8 -
} else if(id.equals(\自动换行\ }
text.setText(\text.selectAll();
else if(id.equals(\撤销\撤消(U)\
}
else if(id.equals(\查找\
String find=\查找\
find=JOptionPane.showInputDialog(\查找:\ }
else if(id.equals(\时间\
time.setFont(new Font(\ text.insertComponent(time); } else if(id.equals(\系统 记事本\ try{
String command = \ Process child = Runtime.getRuntime().exec(command);//从系统进程中调用记事本 } catch (IOException ex) { } }else if(id.equals(\系统 计算器\ try{
String command = \
Process child = Runtime.getRuntime().exec(command);//调用系统计算器 } catch (IOException ex) { } }else if(id.equals(\关于\
about.setSize(250,150);
about.show(); } } };
四、源程序
import java.awt.*;
import java.awt.event.*; import javax.swing.*; import java.io.*;
public class Notepad extends JFrame {
// 系统组件声明
private JMenuBar menuBar = new JMenuBar(); private JEditorPane content = new JEditorPane(); private JScrollPane scroll = new JScrollPane(content); private JFileChooser filechooser = new JFileChooser() ; private BorderLayout bord = new BorderLayout(); private JLabel statusBar = new JLabel();
- 9 -
private JPanel pane = new JPanel(); private File file = null;
// 定义文件菜单
private JMenu fileMenu = new JMenu();
private JMenuItem newMenuItem = new JMenuItem(); private JMenuItem openMenuItem = new JMenuItem(); private JMenuItem saveMenuItem = new JMenuItem(); private JMenuItem saveAsMenuItem = new JMenuItem(); private JMenuItem pageSetupMenuItem = new JMenuItem(); private JMenuItem printMenuItem = new JMenuItem(); private JMenuItem exitMenuItem = new JMenuItem(); // 定义风格菜单
private JMenu styleMenu = new JMenu();
private ButtonGroup styleMenuGroup = new ButtonGroup();
private JRadioButtonMenuItem javaStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem metalStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem windowsStyleMenuItem = new JRadioButtonMenuItem();
// 定义帮助菜单
private JMenuItem aboutMenuItem = new JMenuItem(); private JMenuItem helpTopicMenuItem = new JMenuItem(); private JMenu helpMenu = new JMenu();
// 构造函数
public Notepad(){ initComponents(); }
private void initComponents(){
// 添加子菜单项到文件菜单
fileMenu.setText(\
newMenuItem.setText(\ 新建(N) Ctrl+N\ openMenuItem.setText(\ 打开(O)... Ctrl+O\ saveMenuItem.setText(\ 保存(S) Ctrl+S\ saveAsMenuItem.setText(\ 另存为(A)...\ pageSetupMenuItem.setText(\ 页面设置(U)...\ printMenuItem.setText(\ 打印(P)... Ctrl+P\ exitMenuItem.setText(\ 退出\ fileMenu.add(newMenuItem); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem);
- 10 -