删除private MenuItem miFont , miLowtoCapital, miCapitaltoLow ,miEncrypt , miDisencrypt;//格式菜单项:字体private MenuItem miAboutNotepad;//帮助菜单项:关于记事本private TextArea ta;//文本区private String tempString;//临时字符串,用于存储需要复制粘贴的字符串private boolean textValueChanged = false;private int id_font ;//字体 String fileName = ““;//上次保存后的文件名和地址//构造函数public Notepad(){ //框架 mainFrame = new Frame (“Notepad v0.99 by Launching“); mb = new MenuBar (); ta = new TextArea (30 ,60); ta.setFont( new Font ( “Times New Rome“ , Font.PLAIN , 15)); ta.setBackground(new Color(0 , 250 , 200)); //菜单条 mFile = new Menu ( “File“); mEdit = new Menu ( “Edit“); mFormat = new Menu (“Format“); mHelp = new Menu (“Help“); //“文件“ miNew = new MenuItem (“New“); miOpen = new MenuItem (“Open“); miSave = new MenuItem (“Save“); miSaveAs = new MenuItem (“Save as“); miExit = new MenuItem (“Exit“); //“编辑“ miCut = new MenuItem (“Cut“); miCopy = new MenuItem (“Copy“); miPaste = new MenuItem (“Paste“); miDelete = new MenuItem (“Delete“); //“格式“ miFont = new MenuItem (“Font“); miLowtoCapital = new MenuItem(“Low to Capital“); miCapitaltoLow = new MenuItem(“Capital to Low“); miEncrypt = new MenuItem(“Encrypt“); miDisencrypt = new MenuItem(“Disencrypt“); //“帮助“ miAboutNotepad = new MenuItem (“About Notepad“); //添加文件菜单项 mFile.add(miNew); mFile.add(miOpen); mFile.add(miSave); mFile.add(miSaveAs); mFile.add(miExit); //添加编辑菜单项 mEdit.add(miCut); mEdit.add(miCopy); mEdit.add(miPaste); mEdit.add(miDelete); //添加格式菜单项 mFormat.add(miFont); mFormat.add(miLowtoCapital); mFormat.add(miCapitaltoLow); mFormat.add(miEncrypt); mFormat.add(miDisencrypt); //添加帮助菜单项 mHelp.add(miAboutNotepad); //菜单条添加菜单 mb.add(mFile); mb.add(mEdit); mb.add(mFormat); mb.add(mHelp); //框架添加菜单条 mainFrame.setMenuBar( mb ); //初始字符串赋为空 tempString = ““;//添加文本区 mainFrame.add(ta, BorderLayout.CENTER); mainFrame.setSize(800 , 500); mainFrame.setLocation( 100 ,100);// 起始位置 mainFrame.setResizable(true);//不可更改大小 mainFrame.setVisible(true); //mainFrame.pack(); ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////增加监视器//////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////主框架 mainFrame.addWindowListener(new WindowAdapter (){ //关闭窗口 public void windowClosing(WindowEvent e) { System.exit(0); } }); //文本区 ta.addKeyListener( new KeyAdapter(){ public void KeyTyped(KeyEvent e){ textValueChanged = true ; //键盘按键按下即导致文本修改 } });////////////////“文件“菜单:////////////////////// //新建 miNew.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ ta.replaceRange(““, 0 , ta.getText().length()) ;//清空文本区的内容 fileName = ““;//文件名清空 } });//打开 miOpen.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { FileDialog d=new FileDialog(mainFrame , “open file“ , FileDialog.LOAD );//打开文件对话框 d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); File f = new File( d.getDirectory()+d.getFile() ); //建立新文件 fileName = d.getDirectory()+d.getFile();//得到文件名 char ch = new char [(int)f.length()];///用此文件的长度建立一个字符数组 try//异常处理 { //读出数据,并存入字符数组ch中 BufferedReader bw = new BufferedReader( new FileReader(f) ); bw.read(ch); bw.close(); } catch( FileNotFoundException fe ){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie){ System.out.println(“IO error“); System.exit(0); } String s =new String (ch);ta.setText(s);//设置文本区为所打开文件的内容 } }); //保存 miSave.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { if( fileName.equals(““) ){ //如果文件没有被保存过,即文件名为空FileDialog d=new FileDialog(mainFrame , “save file“ , FileDialog.SAVE );//保存文件对话框 d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); String s = ta.getText();//得到所输入的文本内容 try//异常处理 { File f = new File( d.getDirectory()+d.getFile());//新建文件 fileName = d.getDirectory()+d.getFile();//得到文件名 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie_) { System.out.println(“ IO error“); System.exit(0); } } else //如果文件已经保存过 { String s = ta.getText();//得到所输入的文本内容 try//异常处理 { File f = new File( fileName );//新建文件 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie_) { System.out.println(“ IO error“); System.exit(0); } } } }); //另存为 miSaveAs.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { FileDialog d=new FileDialog(mainFrame , “save file“ , FileDialog.SAVE );//保存文件对话框 d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); String s = ta.getText();//得到所输入的文本内容 try//异常处理 { File f = new File( d.getDirectory()+d.getFile());//新建文件 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie_) { System.out.println(“ IO error“); System.exit(0); } } });//退出 miExit.addActionListener( new ActionListener(){ ///退出程序 public void actionPerformed(ActionEvent e){ System.exit(0); } }); ////////////////“编辑“菜单://////////////////// //剪切 miCut.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ tempString = ta.getSelectedText(); ///得到要复制的内容,暂存在tempString中 StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要删除的字符串的起始位置 int len = ta.getSelectedText().length(); //得到要删除的字符串的长度 tmp.delete( start , start+len); ///删除所选中的字符串 ta.setText(tmp.toString());//用新文本设置原文本 } }); //复制 miCopy.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ tempString = ta.getSelectedText(); ///得到要复制的内容,暂存在tempString中 } }); //粘贴 miPaste.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要粘贴的位置 tmp.insert(start , tempString);//查入要粘贴的内容 ta.setText(tmp.toString());//用新文本设置原文本 } }); //删除 miDelete.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要删除的字符串的起始位置 int len = ta.getSelectedText().length(); //得到要删除的字符串的长度 tmp.delete( start , start+len); ///删除所选中的字符串 ta.setText(tmp.toString());//用新文本设置原文本 } });////////////////“格式“菜单://////////////////// //字体 miFont.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ final Dialog d = new Dialog ( mainFrame , “Font“);//新建对话框 d.setLocation( 250 ,250);// 起始位置d.setLayout( new BorderLayout());//表格布局 //////////////////////////上部分面板 Label l_font = new Label (“font“);//font标签 Panel p_1 = new Panel(); p_1.add(l_font); p_1.setVisible(true);//////////////////////////中部分面板 List font_list = new List (6 , false);//字体列表 //添加字体项目 font_list.add(“Plain“);///普通字体 font_list.add(“Bold“); ///粗体 font_list.add(“Italic“);//斜体 font_list.addItemListener( new MyItemListener_font() ); //字体增加监视器Panel p_2 = new Panel(); p_2.add(font_list); p_2.setVisible(true); //////////////////////////下部分面板 Button ok = new Button (“OK“); ok.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ d.dispose(); } }); ok.setSize( new Dimension (20 , 5) ); Panel p_3 = new Panel();//下部分面板 p_3.add(ok); p_3.setVisible(true); //添加三个面板 d.add(p_1 , BorderLayout.NORTH); d.add(p_2 , BorderLayout.CENTER); d.add(p_3 , BorderLayout.SOUTH); d.pack(); d.addWindowListener( new WindowAdapter(){ //关闭对话框窗口 public void windowClosing(WindowEvent ee){ d.dispose(); } }); d.setVisible(true); } }); //小写字母转大写 miLowtoCapital.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if((int)s.charAt(i)》=97 && (int)s.charAt(i)《=122 ){ temp.append((char)((int)s.charAt(i)-32)); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } });//大写字母转小写 miCapitaltoLow.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if((int)s.charAt(i)》=65 && (int)s.charAt(i)《=90 ){ temp.append((char)((int)s.charAt(i)+32)); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } });//加密 miEncrypt.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if(s.charAt(i)》=40 && s.charAt(i)《=125){ if(i%2==0){ temp.append((char)(s.charAt(i) + 1 )); } else temp.append((char)(s.charAt(i) - 1 )); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } }); //解密 miDisencrypt.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if(s.charAt(i)》=40 && s.charAt(i)《=125){ if(i%2==0){ temp.append((char)(s.charAt(i) - 1 )); } else temp.append((char)(s.charAt(i) + 1 )); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } });////////////////“帮助“菜单://////////////////// //关于记事本 miAboutNotepad.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ final Dialog d = new Dialog ( mainFrame , “AboutNotepad“);//新建对话框 TextArea t = new TextArea(“\nwelcome to use Notepad “ + “\n\n“ + “Copyright@Launching “ + “\n\n“ + “free software“ + “\n\n“ + “v0.99“);//添加标签 t.setSize( new Dimension ( 5 , 5)); t.setEditable(false); d.setResizable(false);//不可调整大小 d.add(t); d.pack(); d.addWindowListener( new WindowAdapter(){ //关闭对话框窗口 public void windowClosing(WindowEvent ee){ d.dispose(); } }); d.setLocation( 100 ,250);// 起始位置 d.setVisible(true); } }); }class MyItemListener_font implements ItemListener { //字体监听器 public void itemStateChanged(ItemEvent e) { id_font = ((java.awt.List)e.getSource()).getSelectedIndex(); switch( id_font){ case 0:{ ta.setFont(new Font(“Times New Roman“, Font.PLAIN ,ta.getFont().getSize()) );//普通文字 break; } case 1:{ ta.setFont(new Font(“Times New Roman“ , Font.BOLD ,ta.getFont().getSize()) );//粗体文字 break; } case 2:{ ta.setFont(new Font(“Times New Roman“ , Font.ITALIC ,ta.getFont().getSize()) );//斜体文字 break; } } }} /////////////////////////////////////////主函数///////////////////////////////////////////////////public static void main(String arg){ Notepad test = new Notepad(); ///创建记事本}//////////////////////////////////////////////////////////////////////////////////////////////////}如何用Java编写文本编辑器package myclass;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import com.sun.tools.hat.internal.parser.Reader;public class MyTxt extends JFrame implements ActionListener{JTextArea ta;JMenuItem open,save,myexit,open1,save1;JMenuItem copy,palse;JMenuBar mb;JPopupMenu popm;JScrollPane sp;public void createmenu(){mb=new JMenuBar();JMenu m1=new JMenu(“文件“);JMenu m2=new JMenu(“编辑“);JMenu m3=new JMenu(“字体“);mb.add(m1);mb.add(m2);m2.add(m3);open=new JMenuItem(“打开“);//ImageIcon ii = new ImageIcon(“a.gif“);//open.setIcon(new ImageIcon(“b.gif“));open.addActionListener(this);save=new JMenuItem(“保存“);save.addActionListener(this);myexit=new JMenuItem(“退出“);myexit.addActionListener(this);m1.add(open);m1.add(save);m1.add(myexit);copy=new JMenuItem(“复制“);palse=new JMenuItem(“粘贴“);m2.add(copy);m2.add(palse);popm=new JPopupMenu ();open1=new JMenuItem(“打开“);open1.addActionListener(this);save1=new JMenuItem(“保存“);save1.addActionListener(this);popm.add(open1);popm.add(save1);ta.add(popm);ta.addMouseListener(new MyMouseEvent(this));}class MyMouseEvent extends MouseAdapter{ MyTxt myparentFrame;MyMouseEvent ( MyTxt m){ myparentFrame=m; }public void mouseReleased(MouseEvent e){ if(e.isPopupTrigger()) myparentFrame.popm.show((Component)e.getSource(),e.getX(),e.getY()); } }public MyTxt (){addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); }}); ta=new JTextArea(10,30); add(ta,BorderLayout.CENTER); Panel p1=new Panel(); add(p1,BorderLayout.SOUTH); setVisible(true); setSize(500,500); //pack(); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕大小 int w = getSize().width; int h = getSize().height; int x = (dim.width-w)/2; int y = (dim.height-h)/2; setLocation(x,y); createmenu(); setJMenuBar(mb); sp = new JScrollPane(ta); getContentPane().add(sp); }public void actionPerformed(ActionEvent e){if(e.getActionCommand()==“打开“) try { openfile(); } catch(IOException ex){}if(e.getActionCommand()==“保存“){ try { savefile(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }}if(e.getActionCommand()==“退出“){ dispose(); System.exit(0);}}public void savefile() throws IOException{FileDialog fd=new FileDialog(this,“保存“,FileDialog.SAVE);fd.setVisible(true);FileWriter fw=new FileWriter( fd.getDirectory()+fd.getFile());for(int i=0;i《ta.getText().length();i++){ fw.write(ta.getText().charAt(i));}fw.close();}public void openfile() throws IOException{FileDialog fd=new FileDialog(this,“打开“,FileDialog.LOAD);fd.setVisible(true);FileReader fr=new FileReader( fd.getDirectory()+fd.getFile());int n=0;int row=10;while((n=fr.read())!=-1){ ta.append(““+(char)n); row--; if(row==0) { ta.append(“\n“); row=20; }}fr.close();}public static void main(String args){MyTxt tw=new MyTxt();}}“超文本”的含义是什么WWW上的每个网页都对应一个文件,这些包含链接的文件被称为超文本文件,超文本文件中多了一些对文件内容的注释,求JAVA编写的文本编辑器import java.awt.*;import java.awt.event.*;import java.io.*;public class Notepad /*implements ActionListener , MouseListener , MouseMotionListener , WindowListener , ItemListener , KeyListener, TextListener */{//成员变量private Frame mainFrame;//主框架private MenuBar mb ; //菜单条private Menu mFile , mEdit , mFormat , mHelp ; //菜单:文件,超文本文件的概念出现在多媒体技术迅速发展之前,麻烦高手推荐几款比较适合初学者编写JAVA程序的文本编辑器notepad++ //一个支持多种语言的文本编辑器,链接的内容已经从原来文本中的一个词或词组。
求JAVA编写的文本编辑器
import java.awt.*;import java.awt.event.*;import java.io.*;public class Notepad /*implements ActionListener , MouseListener , MouseMotionListener , WindowListener , ItemListener , KeyListener, TextListener */{//成员变量private Frame mainFrame;//主框架private MenuBar mb ; //菜单条private Menu mFile , mEdit , mFormat , mHelp ; //菜单:文件,编辑,格式,帮助private MenuItem miNew , miOpen , miSave , miSaveAs , miExit ;//文件菜单项:新建,打开,保存,另存为,退出private MenuItem miCut , miCopy , miPaste , miDelete ;//编辑菜单项:剪切,复制,粘贴,删除private MenuItem miFont , miLowtoCapital, miCapitaltoLow ,miEncrypt , miDisencrypt;//格式菜单项:字体private MenuItem miAboutNotepad;//帮助菜单项:关于记事本private TextArea ta;//文本区private String tempString;//临时字符串,用于存储需要复制粘贴的字符串private boolean textValueChanged = false;private int id_font ;//字体 String fileName = ““;//上次保存后的文件名和地址//构造函数public Notepad(){ //框架 mainFrame = new Frame (“Notepad v0.99 by Launching“); mb = new MenuBar (); ta = new TextArea (30 ,60); ta.setFont( new Font ( “Times New Rome“ , Font.PLAIN , 15)); ta.setBackground(new Color(0 , 250 , 200)); //菜单条 mFile = new Menu ( “File“); mEdit = new Menu ( “Edit“); mFormat = new Menu (“Format“); mHelp = new Menu (“Help“); //“文件“ miNew = new MenuItem (“New“); miOpen = new MenuItem (“Open“); miSave = new MenuItem (“Save“); miSaveAs = new MenuItem (“Save as“); miExit = new MenuItem (“Exit“); //“编辑“ miCut = new MenuItem (“Cut“); miCopy = new MenuItem (“Copy“); miPaste = new MenuItem (“Paste“); miDelete = new MenuItem (“Delete“); //“格式“ miFont = new MenuItem (“Font“); miLowtoCapital = new MenuItem(“Low to Capital“); miCapitaltoLow = new MenuItem(“Capital to Low“); miEncrypt = new MenuItem(“Encrypt“); miDisencrypt = new MenuItem(“Disencrypt“); //“帮助“ miAboutNotepad = new MenuItem (“About Notepad“); //添加文件菜单项 mFile.add(miNew); mFile.add(miOpen); mFile.add(miSave); mFile.add(miSaveAs); mFile.add(miExit); //添加编辑菜单项 mEdit.add(miCut); mEdit.add(miCopy); mEdit.add(miPaste); mEdit.add(miDelete); //添加格式菜单项 mFormat.add(miFont); mFormat.add(miLowtoCapital); mFormat.add(miCapitaltoLow); mFormat.add(miEncrypt); mFormat.add(miDisencrypt); //添加帮助菜单项 mHelp.add(miAboutNotepad); //菜单条添加菜单 mb.add(mFile); mb.add(mEdit); mb.add(mFormat); mb.add(mHelp); //框架添加菜单条 mainFrame.setMenuBar( mb ); //初始字符串赋为空 tempString = ““;//添加文本区 mainFrame.add(ta, BorderLayout.CENTER); mainFrame.setSize(800 , 500); mainFrame.setLocation( 100 ,100);// 起始位置 mainFrame.setResizable(true);//不可更改大小 mainFrame.setVisible(true); //mainFrame.pack(); ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////增加监视器//////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////主框架 mainFrame.addWindowListener(new WindowAdapter (){ //关闭窗口 public void windowClosing(WindowEvent e) { System.exit(0); } }); //文本区 ta.addKeyListener( new KeyAdapter(){ public void KeyTyped(KeyEvent e){ textValueChanged = true ; //键盘按键按下即导致文本修改 } });////////////////“文件“菜单:////////////////////// //新建 miNew.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ ta.replaceRange(““, 0 , ta.getText().length()) ;//清空文本区的内容 fileName = ““;//文件名清空 } });//打开 miOpen.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { FileDialog d=new FileDialog(mainFrame , “open file“ , FileDialog.LOAD );//打开文件对话框 d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); File f = new File( d.getDirectory()+d.getFile() ); //建立新文件 fileName = d.getDirectory()+d.getFile();//得到文件名 char ch = new char [(int)f.length()];///用此文件的长度建立一个字符数组 try//异常处理 { //读出数据,并存入字符数组ch中 BufferedReader bw = new BufferedReader( new FileReader(f) ); bw.read(ch); bw.close(); } catch( FileNotFoundException fe ){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie){ System.out.println(“IO error“); System.exit(0); } String s =new String (ch);ta.setText(s);//设置文本区为所打开文件的内容 } }); //保存 miSave.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { if( fileName.equals(““) ){ //如果文件没有被保存过,即文件名为空FileDialog d=new FileDialog(mainFrame , “save file“ , FileDialog.SAVE );//保存文件对话框 d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); String s = ta.getText();//得到所输入的文本内容 try//异常处理 { File f = new File( d.getDirectory()+d.getFile());//新建文件 fileName = d.getDirectory()+d.getFile();//得到文件名 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie_) { System.out.println(“ IO error“); System.exit(0); } } else //如果文件已经保存过 { String s = ta.getText();//得到所输入的文本内容 try//异常处理 { File f = new File( fileName );//新建文件 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie_) { System.out.println(“ IO error“); System.exit(0); } } } }); //另存为 miSaveAs.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { FileDialog d=new FileDialog(mainFrame , “save file“ , FileDialog.SAVE );//保存文件对话框 d.addWindowListener( new WindowAdapter(){ //关闭文件对话框窗口 public void windowClosing(WindowEvent ee){ System.exit(0); } }); d.setVisible(true); String s = ta.getText();//得到所输入的文本内容 try//异常处理 { File f = new File( d.getDirectory()+d.getFile());//新建文件 BufferedWriter bw = new BufferedWriter( new FileWriter (f));//输入到文件中 bw.write(s , 0 , s.length()); bw.close(); } catch(FileNotFoundException fe_){ System.out.println(“file not found“); System.exit(0); } catch( IOException ie_) { System.out.println(“ IO error“); System.exit(0); } } });//退出 miExit.addActionListener( new ActionListener(){ ///退出程序 public void actionPerformed(ActionEvent e){ System.exit(0); } }); ////////////////“编辑“菜单://////////////////// //剪切 miCut.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ tempString = ta.getSelectedText(); ///得到要复制的内容,暂存在tempString中 StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要删除的字符串的起始位置 int len = ta.getSelectedText().length(); //得到要删除的字符串的长度 tmp.delete( start , start+len); ///删除所选中的字符串 ta.setText(tmp.toString());//用新文本设置原文本 } }); //复制 miCopy.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ tempString = ta.getSelectedText(); ///得到要复制的内容,暂存在tempString中 } }); //粘贴 miPaste.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要粘贴的位置 tmp.insert(start , tempString);//查入要粘贴的内容 ta.setText(tmp.toString());//用新文本设置原文本 } }); //删除 miDelete.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ StringBuffer tmp = new StringBuffer ( ta.getText());//临时存储文本 int start = ta.getSelectionStart(); //得到要删除的字符串的起始位置 int len = ta.getSelectedText().length(); //得到要删除的字符串的长度 tmp.delete( start , start+len); ///删除所选中的字符串 ta.setText(tmp.toString());//用新文本设置原文本 } });////////////////“格式“菜单://////////////////// //字体 miFont.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ final Dialog d = new Dialog ( mainFrame , “Font“);//新建对话框 d.setLocation( 250 ,250);// 起始位置d.setLayout( new BorderLayout());//表格布局 //////////////////////////上部分面板 Label l_font = new Label (“font“);//font标签 Panel p_1 = new Panel(); p_1.add(l_font); p_1.setVisible(true);//////////////////////////中部分面板 List font_list = new List (6 , false);//字体列表 //添加字体项目 font_list.add(“Plain“);///普通字体 font_list.add(“Bold“); ///粗体 font_list.add(“Italic“);//斜体 font_list.addItemListener( new MyItemListener_font() ); //字体增加监视器Panel p_2 = new Panel(); p_2.add(font_list); p_2.setVisible(true); //////////////////////////下部分面板 Button ok = new Button (“OK“); ok.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ d.dispose(); } }); ok.setSize( new Dimension (20 , 5) ); Panel p_3 = new Panel();//下部分面板 p_3.add(ok); p_3.setVisible(true); //添加三个面板 d.add(p_1 , BorderLayout.NORTH); d.add(p_2 , BorderLayout.CENTER); d.add(p_3 , BorderLayout.SOUTH); d.pack(); d.addWindowListener( new WindowAdapter(){ //关闭对话框窗口 public void windowClosing(WindowEvent ee){ d.dispose(); } }); d.setVisible(true); } }); //小写字母转大写 miLowtoCapital.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if((int)s.charAt(i)》=97 && (int)s.charAt(i)《=122 ){ temp.append((char)((int)s.charAt(i)-32)); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } });//大写字母转小写 miCapitaltoLow.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if((int)s.charAt(i)》=65 && (int)s.charAt(i)《=90 ){ temp.append((char)((int)s.charAt(i)+32)); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } });//加密 miEncrypt.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if(s.charAt(i)》=40 && s.charAt(i)《=125){ if(i%2==0){ temp.append((char)(s.charAt(i) + 1 )); } else temp.append((char)(s.charAt(i) - 1 )); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } }); //解密 miDisencrypt.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ String s = ta.getText();//得到所输入的文本内容 StringBuffer temp = new StringBuffer(““); for(int i = 0 ; i《s.length() ; i++){ if(s.charAt(i)》=40 && s.charAt(i)《=125){ if(i%2==0){ temp.append((char)(s.charAt(i) - 1 )); } else temp.append((char)(s.charAt(i) + 1 )); } else temp.append(s.charAt(i)); } s = new String(temp); ta.setText(s); } });////////////////“帮助“菜单://////////////////// //关于记事本 miAboutNotepad.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ final Dialog d = new Dialog ( mainFrame , “AboutNotepad“);//新建对话框 TextArea t = new TextArea(“\nwelcome to use Notepad “ + “\n\n“ + “Copyright@Launching “ + “\n\n“ + “free software“ + “\n\n“ + “v0.99“);//添加标签 t.setSize( new Dimension ( 5 , 5)); t.setEditable(false); d.setResizable(false);//不可调整大小 d.add(t); d.pack(); d.addWindowListener( new WindowAdapter(){ //关闭对话框窗口 public void windowClosing(WindowEvent ee){ d.dispose(); } }); d.setLocation( 100 ,250);// 起始位置 d.setVisible(true); } }); }class MyItemListener_font implements ItemListener { //字体监听器 public void itemStateChanged(ItemEvent e) { id_font = ((java.awt.List)e.getSource()).getSelectedIndex(); switch( id_font){ case 0:{ ta.setFont(new Font(“Times New Roman“, Font.PLAIN ,ta.getFont().getSize()) );//普通文字 break; } case 1:{ ta.setFont(new Font(“Times New Roman“ , Font.BOLD ,ta.getFont().getSize()) );//粗体文字 break; } case 2:{ ta.setFont(new Font(“Times New Roman“ , Font.ITALIC ,ta.getFont().getSize()) );//斜体文字 break; } } }} /////////////////////////////////////////主函数///////////////////////////////////////////////////public static void main(String arg){ Notepad test = new Notepad(); ///创建记事本}//////////////////////////////////////////////////////////////////////////////////////////////////}
如何用Java编写文本编辑器
package myclass;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import com.sun.tools.hat.internal.parser.Reader;public class MyTxt extends JFrame implements ActionListener{JTextArea ta;JMenuItem open,save,myexit,open1,save1;JMenuItem copy,palse;JMenuBar mb;JPopupMenu popm;JScrollPane sp;public void createmenu(){mb=new JMenuBar();JMenu m1=new JMenu(“文件“);JMenu m2=new JMenu(“编辑“);JMenu m3=new JMenu(“字体“);mb.add(m1);mb.add(m2);m2.add(m3);open=new JMenuItem(“打开“);//ImageIcon ii = new ImageIcon(“a.gif“);//open.setIcon(new ImageIcon(“b.gif“));open.addActionListener(this);save=new JMenuItem(“保存“);save.addActionListener(this);myexit=new JMenuItem(“退出“);myexit.addActionListener(this);m1.add(open);m1.add(save);m1.add(myexit);copy=new JMenuItem(“复制“);palse=new JMenuItem(“粘贴“);m2.add(copy);m2.add(palse);popm=new JPopupMenu ();open1=new JMenuItem(“打开“);open1.addActionListener(this);save1=new JMenuItem(“保存“);save1.addActionListener(this);popm.add(open1);popm.add(save1);ta.add(popm);ta.addMouseListener(new MyMouseEvent(this));}class MyMouseEvent extends MouseAdapter{ MyTxt myparentFrame;MyMouseEvent ( MyTxt m){ myparentFrame=m; }public void mouseReleased(MouseEvent e){ if(e.isPopupTrigger()) myparentFrame.popm.show((Component)e.getSource(),e.getX(),e.getY()); } }public MyTxt (){addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); }}); ta=new JTextArea(10,30); add(ta,BorderLayout.CENTER); Panel p1=new Panel(); add(p1,BorderLayout.SOUTH); setVisible(true); setSize(500,500); //pack(); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕大小 int w = getSize().width; int h = getSize().height; int x = (dim.width-w)/2; int y = (dim.height-h)/2; setLocation(x,y); createmenu(); setJMenuBar(mb); sp = new JScrollPane(ta); getContentPane().add(sp); }public void actionPerformed(ActionEvent e){if(e.getActionCommand()==“打开“) try { openfile(); } catch(IOException ex){}if(e.getActionCommand()==“保存“){ try { savefile(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }}if(e.getActionCommand()==“退出“){ dispose(); System.exit(0);}}public void savefile() throws IOException{FileDialog fd=new FileDialog(this,“保存“,FileDialog.SAVE);fd.setVisible(true);FileWriter fw=new FileWriter( fd.getDirectory()+fd.getFile());for(int i=0;i《ta.getText().length();i++){ fw.write(ta.getText().charAt(i));}fw.close();}public void openfile() throws IOException{FileDialog fd=new FileDialog(this,“打开“,FileDialog.LOAD);fd.setVisible(true);FileReader fr=new FileReader( fd.getDirectory()+fd.getFile());int n=0;int row=10;while((n=fr.read())!=-1){ ta.append(““+(char)n); row--; if(row==0) { ta.append(“\n“); row=20; }}fr.close();}public static void main(String args){MyTxt tw=new MyTxt();}}
“超文本”的含义是什么
WWW上的每个网页都对应一个文件。我们浏览一个页面,要先把页面所对应的文件从提供这个文件的计算机里,通过Internet传送到我们自己的计算机中,再由WWW浏览器翻译成为我们见到的有文字、有图形甚至有声音的页面。这些页面对应的文件不再是普通的“文本文件”,文件中除包含文字信息外,还包括了一些具体的链接。这些包含链接的文件被称为超文本文件。 和普通文本相比,超文本文件中多了一些对文件内容的注释,这些注释表明了当前文字显示的位置、颜色等信息,更重要的是,在有些注释中包含了对用户计算机应做出何种反应的说明,这些注释的内容经过浏览器的翻译后就成了不同的操作。为了使各种不同类型的WWW服务器都能正确地认识和执行,超文本文件要遵从一个严格的标准,这个标准就是超文本标识语言(HTML)。我们也可以利用这种语言来编写超文本文件,在Internet上制作自己的WWW的主页。 超文本文件的概念出现在多媒体技术迅速发展之前,现在随着多媒体技术应用的日益广泛,超文本应该改叫“超多媒体”更加合适,链接的内容已经从原来文本中的一个词或词组,发展到现在一幅图象或是图象的一部分,通过链接得到的内容也更加广泛,可以是地球另一端的某台计算机上的图片、声音、音乐或者电影。但不管叫超文本还是叫做超多媒体,WWW上各网页都是通过链接来完成相互间的访问。而要使访问正常进行,必须使这些链接能够正确地指向所要访问的网页。这些工作是通过统一资源定位器(URL)来实现的。
麻烦高手推荐几款比较适合初学者编写JAVA程序的文本编辑器
notepad++ //一个支持多种语言的文本编辑器,带有代码提示、语法高亮功能!editplus //支持Java语言。有语法高亮功能。没有代码提示!ultraedit //同editplus