java记事本 仿windows_仿Windows记事本Swing程序

1.[代码][Java]代码

import java.awt.*;

import java.awt.datatransfer.*;

import java.awt.event.*;

import javax.print.*;

import javax.print.attribute.DocAttributeSet;

import javax.print.attribute.HashDocAttributeSet;

import javax.print.attribute.HashPrintRequestAttributeSet;

import javax.print.attribute.PrintRequestAttributeSet;

import javax.print.attribute.standard.MediaSizeName;

import javax.swing.*;

import javax.swing.border.BevelBorder;

import javax.swing.event.UndoableEditEvent;

import javax.swing.event.UndoableEditListener;

import javax.swing.filechooser.*;

import javax.swing.filechooser.FileFilter;

import javax.swing.plaf.FileChooserUI;

import javax.swing.undo.UndoableEdit;

import java.io.*;

public class Notepad extends JFrame {

/**

* @param args

*/

public JTextArea jta=null; //中间的文本区域

private File selectedFile=null;

private JFileChooser chooser=null; //文件选择器

private UndoableEdit edit; //设置还原功能

private boolean canUndo=false;

private JMenuItem jmiUndoItem; //撤销的菜单

private Clipboard clip=null; //粘贴板

private JDialog jdSearchDialog;

public Notepad()

{

super("Notepad Beta");

super.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

chooser=new JFileChooser();

chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

clip=Toolkit.getDefaultToolkit().getSystemClipboard();

jta=new JTextArea();

jta.setWrapStyleWord(true);

jta.setLineWrap(true);

//*****************************右键弹出功能

final JPopupMenu jpMenu=new JPopupMenu();

JMenuItem jpItemUndo=new JMenuItem("撤销(U) ");

JMenuItem jpItemCut=new JMenuItem("剪切(T) ");

JMenuItem jpItemCopy=new JMenuItem("复制(C) ");

JMenuItem jpItemPaste=new JMenuItem("粘贴(P) ");

jpMenu.add(jpItemUndo);

jpMenu.add(new JPopupMenu.Separator());

jpMenu.add(jpItemCut);

jpMenu.add(jpItemCopy);

jpMenu.add(jpItemPaste);

jpMenu.setBorder(new BevelBorder(BevelBorder.RAISED));

jta.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e)

{

if(e.isMetaDown())

{

if(!jpMenu.isVisible())

{

jpMenu.show(e.getComponent(),e.getX(),e.getY());

}

}

else {

jpMenu.setVisible(false);

}

}

});

//*****************************实现撤销功能

jta.getDocument().addUndoableEditListener(new UndoableEditListener() {

@Override

public void undoableEditHappened(UndoableEditEvent e) {

// TODO Auto-generated method stub

edit=e.getEdit();

if(edit!=null)

{

canUndo=edit.canUndo();

}

else

{

canUndo=false;

}

}

});

//**********************************设置相关菜单和事件监听

Container content=getContentPane();

JMenuBar jmb=new JMenuBar();

JMenu jmFile=new JMenu("文件(F)");

jmFile.setMnemonic('f');

JMenu jmEdit=new JMenu("编辑(E)");

jmEdit.setMnemonic('e');

JMenu jmStyle=new JMenu("格式(O)");

jmStyle.setMnemonic('e');

JMenu jmView=new JMenu("查看(V)");

jmView.setMnemonic('v');

JMenu jmHelp=new JMenu("帮助(H)");

jmHelp.setMnemonic('h');

jmb.add(jmFile);

jmb.add(jmEdit);

jmb.add(jmStyle);

jmb.add(jmView);

jmb.add(jmHelp);

setJMenuBar(jmb);

JMenuItem jmiNewItem=new JMenuItem("新建(N) Ctrl+N");

jmiNewItem.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

if(!jta.getText().equals(""))

{

int confirm=JOptionPane.showConfirmDialog(Notepad.this, "是否保存(S) Ctrl+S文件?");

if(confirm==JOptionPane.OK_OPTION)

{

if(selectedFile!=null)

{

try {

FileWriter fw=new FileWriter(selectedFile);

fw.write(jta.getText());

fw.close();

} catch (Exception e) {

// TODO: handle exce

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值