📄 jsb.java~4~
字号:
import java.awt.*;import java.awt.event.*;import java.awt.*;import javax.swing.*;import java.lang.*;import java.text.*;import java.io.*;import java.util.*;import javax.accessibility.*;import java.awt.datatransfer.*;// 记事本public class jsb extends JFrame implements ActionListener,MouseListener{JPanel contentPane;JMenuBar jMenuBar1 = new JMenuBar();//文件菜单JMenu jMenuFile = new JMenu();JMenuItem jMenuFileNew = new JMenuItem();JMenuItem jMenuFileOpen = new JMenuItem();JMenuItem jMenuFileSave = new JMenuItem();JMenuItem jMenuFileSaveTo = new JMenuItem();JMenuItem jMenuFileExit = new JMenuItem();//帮助菜单JMenu jMenuHelp = new JMenu();JMenuItem jMenuHelpAbout = new JMenuItem();BorderLayout borderLayout1 = new BorderLayout();//编辑菜单JMenu jMenuFileEdit = new JMenu();JMenuItem jMenuFileCut = new JMenuItem();JMenuItem jMenuFileCopy = new JMenuItem();JMenuItem jMenuFilePaste = new JMenuItem();JMenuItem jMenuFileDel = new JMenuItem();//右键菜单JMenuItem jMenuMouseCut = new JMenuItem("剪切");JMenuItem jMenuMouseCopy = new JMenuItem("复制");JMenuItem jMenuMousePaste = new JMenuItem("粘贴");JMenuItem jMenuMouseDel = new JMenuItem("删除");//格式菜单JMenu jMenuFileForm = new JMenu();JMenuItem jMenuFileFindNext = new JMenuItem();JMenuItem jMenuFileSelect=new JMenuItem("全选");JMenuItem jMenuFileTime = new JMenuItem("时间/日期(D)");JMenuItem jMenuFileFont = new JMenuItem();JMenuItem jcolor=new JMenuItem("颜色...");JCheckBox jMenuCheckBox = new JCheckBox("自动换行",false);JTextArea jTextArea1 = new JTextArea(15,15);JLabel statubar=new JLabel("状态栏");JPopupMenu pm=new JPopupMenu();Calendar cal=Calendar.getInstance();// 变量声明String filename;String filepath;String strtext="";boolean bsaved = false;JFileChooser jFileChooser = new JFileChooser();JColorChooser jColor=new JColorChooser();FileDialog filedialog_save;BufferedWriter out;FileWriter tofile;Clipboard cb=Toolkit.getDefaultToolkit().getSystemClipboard();int n;int i;int t;boolean check=true;FileDialog dog;//组件初始化public jsb(){contentPane = (JPanel) this.getContentPane();contentPane.setLayout(borderLayout1);this.setBounds(110,100,500, 450);this.setFont(new Font("宋体", Font.PLAIN, 8));this.setTitle("编辑文字");jTextArea1.setDoubleBuffered(false);jTextArea1.setToolTipText("编辑文字");jTextArea1.setVerifyInputWhenFocusTarget(true);jTextArea1.setText("");contentPane.add(statubar,borderLayout1.SOUTH);jMenuFile.setText("文件");jMenuFileExit.setText("退出");jMenuHelp.setText("帮助");jMenuHelpAbout.setText("关于");jMenuFileNew.setText("新建(N)");jMenuFileNew.setMnemonic(KeyEvent.VK_N);KeyStroke keynew=KeyStroke.getKeyStroke(KeyEvent.VK_N,Event.CTRL_MASK);jMenuFileNew.setAccelerator(keynew);jMenuFileOpen.setText("打开(O)...");jMenuFileOpen.setMnemonic(KeyEvent.VK_O);KeyStroke keyopen=KeyStroke.getKeyStroke(KeyEvent.VK_O,Event.CTRL_MASK);jMenuFileOpen.setAccelerator(keyopen);jMenuFileSave.setText("保存(S)");jMenuFileSave.setMnemonic(KeyEvent.VK_S);KeyStroke keysave=KeyStroke.getKeyStroke(KeyEvent.VK_S,Event.CTRL_MASK);jMenuFileSave.setAccelerator(keysave);jMenuFileSaveTo.setText("另存为(A)");jMenuFileEdit.setText("编辑");jMenuFileCut.setText("剪切(T)");jMenuFileCut.setMnemonic(KeyEvent.VK_X);KeyStroke keycut=KeyStroke.getKeyStroke(KeyEvent.VK_O,Event.CTRL_MASK);jMenuFileCut.setAccelerator(keycut);jMenuFileCopy.setText("复制(C)");jMenuFileCopy.setMnemonic(KeyEvent.VK_C);KeyStroke keycopy=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);jMenuFileCopy.setAccelerator(keycopy);jMenuFilePaste.setText("粘贴(P)");jMenuFilePaste.setMnemonic(KeyEvent.VK_V);KeyStroke keypaste=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);jMenuFilePaste.setAccelerator(keypaste);jMenuFileDel.setText("删除(L)");jMenuFileFindNext.setText("查找");jMenuFileFindNext.setMnemonic(KeyEvent.VK_F);KeyStroke keyfind=KeyStroke.getKeyStroke(KeyEvent.VK_F,Event.CTRL_MASK);jMenuFileFindNext.setAccelerator(keyfind);jMenuFileForm.setText("格式");jMenuBar1.add(jMenuFile);jMenuBar1.add(jMenuFileEdit);jMenuBar1.add(jMenuFileForm);jMenuBar1.add(jMenuHelp);jMenuFile.add(jMenuFileNew);jMenuFile.add(jMenuFileOpen);jMenuFile.add(jMenuFileSave);jMenuFile.add(jMenuFileSaveTo);jMenuFile.addSeparator();jMenuFile.add(jMenuFileExit);jMenuFileEdit.add(jMenuFileCut);jMenuFileEdit.add(jMenuFileCopy);jMenuFileEdit.add(jMenuFilePaste);jMenuFileEdit.add(jMenuFileDel);jMenuFileEdit.addSeparator();jMenuFileEdit.add(jMenuFileFindNext);jMenuFileEdit.add(jMenuFileSelect);jMenuFileEdit.add(jMenuFileTime);jMenuFileForm.add(jcolor);jMenuFileForm.add(jMenuCheckBox);jMenuHelp.add(jMenuHelpAbout);contentPane.add(jTextArea1, BorderLayout.CENTER);//鼠标菜单jTextArea1.add(pm);pm.add(jMenuMouseCut);pm.add(jMenuMouseCopy);pm.add(jMenuMousePaste);pm.add(jMenuMouseDel);//滚动条控件JScrollPane scroller = new JScrollPane();JViewport port = scroller.getViewport();contentPane.add("Center", scroller);port.add(jTextArea1);this.setJMenuBar(jMenuBar1);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//添加菜单中的监听器jTextArea1.addMouseListener(this);File_new_actionAdapter fnew=new File_new_actionAdapter();jMenuFileNew.addActionListener(fnew);File_open_actionAdapter fopen=new File_open_actionAdapter();jMenuFileOpen.addActionListener(fopen);File_save_actionAdapter fsave=new File_save_actionAdapter();jMenuFileSave.addActionListener(fsave);File_saveto_actionAdapter fsaveto=new File_saveto_actionAdapter();jMenuFileSaveTo.addActionListener(fsaveto);File_close_actionAdapter fclose=new File_close_actionAdapter();jMenuFileExit.addActionListener(fclose);jMenuFileCut.addActionListener(this);jMenuFileCopy.addActionListener(this);jMenuFilePaste.addActionListener(this);jMenuFileDel.addActionListener(this);//鼠标事件jMenuMouseCut.addActionListener(this);jMenuMouseCopy.addActionListener(this);jMenuMousePaste.addActionListener(this);jMenuMouseDel.addActionListener(this);jMenuFileFindNext.addActionListener(this);jMenuFileSelect.addActionListener(this);jMenuFileTime.addActionListener(this);jMenuFileFont.addActionListener(this);jMenuCheckBox.addActionListener(this);jcolor.addActionListener(this);jMenuHelpAbout.addActionListener(this);show();validate();}//调用的函数public void File_new_actionPerformed(ActionEvent e){FileNew();}public void File_open_actionPerformed(ActionEvent e){FileOpen();}public void File_save_actionPerformed(ActionEvent e){FileSave();}public void File_saveto_actionPerformed(ActionEvent e){FileSaveTo();}public void File_close_actionPerformed(ActionEvent e){FileClose();}public void mouseReleased(MouseEvent e){if(e.isPopupTrigger())pm.show(this,e.getX(),e.getY());}public void mouseClicked(MouseEvent e){}public void mouseEntered(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mousePressed(MouseEvent e){}boolean toExit(){if(bsaved)return true;int i=JOptionPane.showConfirmDialog(this,"是否保存文件","Jishiben",JOptionPane.YES_NO_CANCEL_OPTION);switch(i){case JOptionPane.YES_OPTION:return true;case JOptionPane.NO_OPTION:return false;case JOptionPane.CANCEL_OPTION:return false;default:return false;}}//调用文件新建void FileNew(){if(bsaved){this.jTextArea1.setText("");this.jTextArea1.setFocusable(true);this.setTitle("未命名");this.statubar.setText("新建文本");}else FileSaveTo();}//调用文件打开void FileOpen(){String strFileOpen="";{try{if(this.jFileChooser.APPROVE_OPTION==this.jFileChooser.showOpenDialog(this)){strFileOpen=this.jFileChooser.getSelectedFile().getPath();File file=new File(strFileOpen);int flength=(int)file.length();int num=0;FileReader fReader=new FileReader(file);char[] data=new char[flength];while(fReader.ready()){num+=fReader.read(data,num,flength-num);}fReader.close();jTextArea1.setText(new String(data,0,num));filename=strFileOpen;this.setTitle(filename);statubar.setText("打开:"+filename);updateFname();bsaved=false;}elsereturn ;}catch(Exception e){statubar.setText("Error Open:"+e.getMessage());}}FileSave();}//调用保存对话框boolean FileSave(){if(filename==null){return FileSaveTo();}if(!bsaved){if(filename.length()!=0){try{File saveFile=new File(filename);FileWriter fw=new FileWriter(saveFile);fw.write(jTextArea1.getText());fw.close();statubar.setText("保存文件:"+filename);bsaved=true;updateFname();}catch(Exception e){statubar.setText("保存出错: "+e.getMessage());}}else{return FileSaveTo();}}return true;}//调用另存对话框boolean FileSaveTo(){if(jFileChooser.APPROVE_OPTION==jFileChooser.showSaveDialog(this)){filename=jFileChooser.getSelectedFile().getPath();return FileSave();}else{return false;}}//更改标题void updateFname(){String str;if(filename==null){str="无标题";}else{str=filename;}if(!bsaved){str="记事本"+str;}this.setTitle(str);this.repaint();}//文件关闭void FileClose(){if(!bsaved){if(toExit()){FileSave();}else {System.exit(0);}}else{System.exit(0);}}//调用编辑剪切void FileCut (ActionEvent e){try{String str=this.jTextArea1.getSelectedText();if(str.length()!=0){StringSelection s = new StringSelection(str);cb.setContents(s,s);this.jTextArea1.replaceRange("",this.jTextArea1.getSelectionStart(),this.jTextArea1.getSelectionEnd());bsaved =false;}}catch(Exception ex){this.statubar.setText("剪切出错:"+ex.getMessage());}}//调用编辑复制void FileCopy(ActionEvent e){try{String str=this.jTextArea1.getSelectedText();if(str.length()!=0){StringSelection s = new StringSelection(str);cb.setContents(s,s);}}catch(Exception ex){this.statubar.setText("复制出错!"+ex.getMessage());}}//调用编辑粘贴void FilePaste(ActionEvent e){try{Transferable tr =cb.getContents(this);if (tr != null){String s = (String)tr.getTransferData(DataFlavor.stringFlavor);if(s!=null)jTextArea1.replaceRange(s,jTextArea1.getSelectionStart(),jTextArea1.getSelectionEnd());bsaved =false;}}catch (Exception err){err.printStackTrace();}}//调用编辑删除void FileDel(ActionEvent e){jTextArea1.replaceRange("",jTextArea1.getSelectionStart(),jTextArea1.getSelectionEnd());bsaved =false;}//调用编辑查找void FileFindNext(ActionEvent e){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -