sx__wjf sx__wjf
关注数: 14 粉丝数: 35 发帖数: 567 关注贴吧数: 18
求助~~如何实现记事本的帮助和日期功能 port java.io.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.Date; import java.text.SimpleDateFormat;public class TestNotepad implements ActionListener { private JMenuBar mb; private JTextArea txtMain; private JFrame f; private JScrollPane pane; private JPopupMenu popMenu; //初始化程序界面 public void init() { f = new JFrame("皇家版记事本"); f.setLayout(new BorderLayout()); txtMain = new JTextArea(80,10); //添加滚动条 pane = new JScrollPane(txtMain,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); f.add(pane); //创建菜单 mb = new JMenuBar(); JMenu fileMenu = new JMenu("文件(F)"); JMenu editMenu = new JMenu("编辑(E)"); JMenu optionMenu = new JMenu("格式(O)"); JMenu viewMenu = new JMenu("查看(V)"); JMenu helpMenu = new JMenu("帮助(H)"); JMenuItem newItem = new JMenuItem("新建"); JMenuItem openItem = new JMenuItem("打开"); JMenuItem saveItem = new JMenuItem("保存"); JMenuItem saveAs = new JMenuItem("另存为(A)..."); JMenuItem printItem = new JMenuItem("打印"); JMenuItem exitItem = new JMenuItem("退出"); JMenuItem undoItem = new JMenuItem("取消"); JMenuItem cutItem = new JMenuItem("剪切"); JMenuItem copyItem = new JMenuItem("复制"); JMenuItem pasteItem = new JMenuItem("粘贴"); JMenuItem searchItem = new JMenuItem("查找"); JMenuItem allItem = new JMenuItem("全选"); JMenuItem dateItem = new JMenuItem("时间/日期"); JCheckBoxMenuItem autoWrappedItem = new JCheckBoxMenuItem("自动换行"); JMenuItem fontItem = new JMenuItem("字体..."); JCheckBoxMenuItem statusBarItem = new JCheckBoxMenuItem("状态栏"); JMenuItem aboutItem = new JMenuItem("关于记事本"); //添加快捷键 newItem.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK)); openItem.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_MASK)); saveItem.setAccelerator(KeyStroke.getKeyStroke('S',InputEvent.CTRL_MASK)); printItem.setAccelerator(KeyStroke.getKeyStroke('P',InputEvent.CTRL_MASK)); undoItem.setAccelerator(KeyStroke.getKeyStroke('Z',InputEvent.CTRL_MASK)); cutItem.setAccelerator(KeyStroke.getKeyStroke('X',InputEvent.CTRL_MASK)); copyItem.setAccelerator(KeyStroke.getKeyStroke('C',InputEvent.CTRL_MASK)); pasteItem.setAccelerator(KeyStroke.getKeyStroke('V',InputEvent.CTRL_MASK)); searchItem.setAccelerator(KeyStroke.getKeyStroke('F',InputEvent.CTRL_MASK)); allItem.setAccelerator(KeyStroke.getKeyStroke('A',InputEvent.CTRL_MASK)); dateItem.setAccelerator(KeyStroke.getKeyStroke("F5")); fileMenu.add(newItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.addSeparator(); //添加分隔栏 fileMenu.add(printItem); fileMenu.addSeparator(); //添加分隔栏 fileMenu.add(exitItem); editMenu.add(undoItem); editMenu.add(cutItem); editMenu.add(copyItem); editMenu.add(pasteItem); editMenu.add(searchItem); editMenu.add(allItem); editMenu.addSeparator(); editMenu.add(dateItem); optionMenu.add(autoWrappedItem); optionMenu.addSeparator(); optionMenu.add(fontItem); viewMenu.add(statusBarItem); helpMenu.add(aboutItem); //把菜单添加到菜单栏中 mb.add(fileMenu); mb.add(editMenu); mb.add(optionMenu); mb.add(viewMenu); mb.add(helpMenu); //设置mb为f的菜单栏 f.setJMenuBar(mb); f.setVisible(true); f.setBounds(400,300,500,400); //监听f的窗体事件 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } //实现用于一般操作的事件侦听器 public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); if(str.equals("帮助")) { String message = " ----皇家版记事本----\n版本:0.01\n作者:王晋峰\nQQ:446422860\nEmail:[email protected]\n感谢您的使用!"; JOptionPane.showMessageDialog(f,message,"关于",JOptionPane.PLAIN_MESSAGE); } else if(str.equals("退出")) System.exit(0); else if(str.equals("复制")) { txtMain.copy(); } else if(str.equals("全选")) { txtMain.selectAll(); } else if(str.equals("剪切")) { txtMain.cut(); } else if(str.equals("粘贴")) { txtMain.paste(); } else if(str.equals("时间/日期")) { Date nowTime=new Date(); SimpleDateFormat times=new SimpleDateFormat("HH:mm yyyy-MM-dd"); txtMain.insert(times.format(nowTime),txtMain.getCaretPosition()); } } public static void main(String[] args) { new TestNotepad().init(); } }
1 下一页