简单Java仿windows记事本

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
private boolean canUndo=false;
private JMenuItem jmiUndoItem; //撤销的菜单
private Clipboard clip=null; //粘贴板
private JDialog jdSearchDialog;
public Notepad()
{
clip=Toolkit.getDefaultToolkit().getSystemClipboard();
jta=new JTextArea();
jta.setWrapStyleWord(true);
jta.setLineWrap(true);
//*****************************右键弹出功能
jpMenu.add(jpItemPaste);
jpMenu.setBorder(new BevelBorder(BevelBorder.RAISED));
jta.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)
jta.getDocument().addUndoableEditListener(new UndoableEditListener() {
@Override
public void undoableEditHappened(UndoableEditEvent e) {
// TODO Auto-generated method stub
// TODO: handle exception
JOptionPane.showConfirmDialog(Notepad.this, "文件写入异常");
}
jta.setText("");
}
else
{
jta.setText("");
JFileChooser jChooser=new JFileChooser();
JOptionPane.showConfirmDialog(Notepad.this, "文件写入异常");
}
}
else
{
JFileChooser jChooser=new JFileChooser();
int selection=jChooser.showSaveDialog(Notepad.this);
jmStyle.setMnemonic('e');
JMenu jmView=new JMenu("查看(V)");
jmView.setMnemonic('v');
JMenu jmHelp=new JMenu("帮助(H)");
jmHelp.setMnemonic('h');
jmb.add(jmFile);
JMenuItem jpItemPaste=new JMenuItem("粘贴(P) ");
jpMenu.add(jpItemUndo);
jpMenu.add(new JPopupMenu.Separator());
jpMenu.add(jpItemCut);
jpMenu.add(jpItemCopy);
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.filechooser.*;
/**
* @param args
*/
public JTextArea jta=null; //中间的文本区域
private File selectedFile=null;
private JFileChooser chooser=null; //文件选择器
private UndoableEdit edit; //设置还原功能
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(!jta.getText().equals(""))
{
int confirm=JOptionPane.showConfirmDialog(Notepad.this, "是否保存(S) Ctrl+S文件?");
final JPopupMenu jpMenu=new JPopupMenu();
JMenuItem jpItemUndo=new JMenuItem("撤销(U) ");
JMenuItem jpItemCut=new JMenuItem("剪切(T) ");
JMenuItem jpItemCopy=new JMenuItem("复制(C) ");
edit=e.getEdit();
if(edit!=null)
{
canUndo=edit.canUndo();
}
else
{
canUndo=false;
}
}
});
//**********************************设置相关菜单和事件监听
Container content=getContentPane();
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() {
主程序:
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.print.*;
import javax.print.attribute.DocAttributeSet;
import javax.print.attribute.HashDocAttributeSet;
if(selection==JFileChooser.APPROVE_OPTION)
{
selectedFile=jChooser.getSelectedFile();
try {
FileWriter fw=new FileWriter(selectedFile);
fw.write(jta.getText());
if(confirm==JOptionPane.OK_OPTION)
{
if(selectedFile!=null)
{
try {
FileWriter fw=new FileWriter(selectedFile);
fw.write(jta.getText());
fw.close();
} catch (Exception e) {
int selection=jChooser.showSaveDialog(Notepad.this);
if(selection==JFileChooser.APPROVE_OPTION)
{
selectedFile=jChooser.getSelectedFile();
try {
FileWriter fw=new FileWriter(selectedFile);
fw.close();
} catch (Exception e) {
// TODO: handle exception
JOptionPane.showConfirmDialog(Notepad.this, "文件写入异常");
}
}
}
}
else if(confirm==JOptionPane.NO_OPTION)
import javax.swing.filechooser.FileFilter;
import javax.swing.plaf.FileChooserUI;
import javax.swing.undo.UndoableEdit;
import java.io.*;
public class Notepad extends JFrame {
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.MediaSizeName;
JMenuBar jmb=new JMenuBar();
JMenu jmFile=new JMenu("文件(F)");
jmFile.setபைடு நூலகம்nemonic('f');
JMenu jmEdit=new JMenu("编辑(E)");
jmEdit.setMnemonic('e');
JMenu jmStyle=new JMenu("格式(O)");
{
jta.setText("");
JFileChooser jChooser=new JFileChooser();
int selection=jChooser.showOpenDialog(Notepad.this);
{
if(selection==JFileChooser.APPROVE_OPTION)
super("Notepad Beta");
super.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
chooser=new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
{
selectedFile=jChooser.getSelectedFile();
try {
BufferedReader bf=new BufferedReader(new FileReader(selectedFile));
String tempString="";
int i;
while((i=bf.read())!=-1)
{
jta.setText("");
}
else {}
}
else{}
}
});
JMenuItem jmiOpenItem=new JMenuItem("打开(O) Ctrl+O");
jmiOpenItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
fw.write(jta.getText());
fw.close();
} catch (Exception e) {
// TODO: handle exception
JOptionPane.showConfirmDialog(Notepad.this, "文件写入异常");
}
}
}
}
else if(confirm==JOptionPane.NO_OPTION)
// 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 exception
{
if(e.isMetaDown())
{
if(!jpMenu.isVisible())
{
jpMenu.show(e.getComponent(),e.getX(),e.getY());
}
}
else {
jpMenu.setVisible(false);
}
}
});
//*****************************实现撤销功能
相关文档
最新文档