java文本编辑器java jfilechooser 文本编辑器

java文本编辑器  时间:2021-09-15  阅读:()

麻烦高手推荐几款比较适合初学者编写JAVA程序的文本编辑器?

notepad++ //一个支持多种语言的文本编辑器,带有代码提示、语法高亮功能! editplus //支持Java语言。

有语法高亮功能。

没有代码提示! ultraedit //同editplus

用JAVA设计一个简单文本编辑器

import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; import java.util.*; //Date needed import java.io.PrintWriter; public class NotePad extends JFrame { JTextArea jta; class newl implements ActionListener { public void actionPerformed(ActionEvent e) { jta.setText(""); } } class openl implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf=new JFileChooser(); jf.showOpenDialog(NotePad.this); } } //保存文件的监听 class savel implements ActionListener { public void actionPerformed(ActionEvent e) { JFileChooser jf = new JFileChooser(); jf.showSaveDialog(NotePad.this); } } //打印的监听 ? class printl implements ActionListener { public void actionPerformed(ActionEvent e) { // PrintWriter p = new PrintWriter(NotePad.this); } } //退出记事本的监听 class exitl implements ActionListener { public void actionPerformed(ActionEvent e) { System.exit(0);//退出 } } //拷贝的监听 class copyl implements ActionListener { public void actionPerformed(ActionEvent e) { jta.copy(); } } //粘贴的监听 class pastel implements ActionListener { public void actionPerformed(ActionEvent e) { jta.paste(); } } //剪切的监听 class cutl implements ActionListener { public void actionPerformed(ActionEvent e) { jta.cut(); } } //查找的监听 //添加日期的监听 class datel implements ActionListener { public void actionPerformed(ActionEvent e) { Date d=new Date(); jta.append(d.toString()); } } //构造函数 public NotePad() { jta=new JTextArea("",24,40); JScrollPane jsp=new JScrollPane(jta); JMenuBar jmb=new JMenuBar(); JMenu mFile=new JMenu("File"); JMenu mEdit=new JMenu("Edit"); JMenuItem mNew=new JMenuItem("New",KeyEvent.VK_N); mNew.addActionListener(new newl()); mFile.add(mNew); JMenuItem mOpen=new JMenuItem("Open",KeyEvent.VK_O); mOpen.addActionListener(new openl()); mFile.add(mOpen); JMenuItem mSave=new JMenuItem("Save"); mSave.addActionListener(new savel()); mFile.add(mSave); mFile.addSeparator(); //添加分割线 JMenuItem mPrint = new JMenuItem("Print"); mPrint.addActionListener(new printl()); mFile.add(mPrint); mFile.addSeparator(); //添加分割线 JMenuItem mExit=new JMenuItem("Exit"); mExit.addActionListener(new exitl()); mFile.add(mExit); mFile.setMnemonic(KeyEvent.VK_F); //编辑菜单的子菜单的处理 JMenuItem jmi; jmi=new JMenuItem("Copy"); jmi.addActionListener(new copyl()); mEdit.add(jmi); jmi=new JMenuItem("Cut"); jmi.addActionListener(new cutl()); mEdit.add(jmi); jmi=new JMenuItem("Paste"); jmi.addActionListener(new pastel()); mEdit.add(jmi); mEdit.addSeparator(); //添加分割线 jmi=new JMenuItem("Find"); mEdit.add(jmi); jmi=new JMenuItem("FindNext"); mEdit.add(jmi); mEdit.addSeparator(); jmi=new JMenuItem("Select All"); mEdit.add(jmi); jmi=new JMenuItem("Date/Time"); jmi.addActionListener(new datel()); mEdit.add(jmi); jmb.add(mFile); jmb.add(mEdit); this.setJMenuBar(jmb); this.getContentPane().add(jsp); this.setSize(200,200); this.setVisible(true); } //主函数,程序入口点 public static void main(String s[]) { new NotePad(); } }

求java做一个文本编辑器,要求如下,缺一不可,如果可以追加悬赏100分!!

public class MyEditor { public static void main(String[] args) { new EditorFrame(); } } import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.Reader; import java.util.StringTokenizer; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class EditorFrame extends JFrame implements ActionListener{ private JMenuBar bar = null; private JMenu f = null; private JMenuItem newf = null; private JMenuItem openf = null; private JMenuItem savef = null; private JMenuItem saveAs = null; private JMenuItem exit = null; private JMenu tool = null; private JMenuItem edit = null; private JMenuItem run = null; private JMenu help = null; private JMenuItem about = null; private JTextArea txt = null; private File file = null; public EditorFrame(){ f = new JMenu("File"); newf = new JMenuItem("New"); newf.addActionListener(this); f.add(newf); openf = new JMenuItem("Open"); openf.addActionListener(this); f.add(openf); savef = new JMenuItem("Save"); savef.addActionListener(this); f.add(savef); saveAs = new JMenuItem("Save As"); saveAs.addActionListener(this); f.add(saveAs); exit = new JMenuItem("Exit"); exit.addActionListener(this); f.add(exit); tool = new JMenu("Tool"); edit = new JMenuItem("Edit"); edit.addActionListener(this); tool.add(edit); run = new JMenuItem("Run"); run.addActionListener(this); tool.add(run); help = new JMenu("Help"); about = new JMenuItem("About Java Text Editor"); about.addActionListener(this); help.add(about); bar = new JMenuBar(); bar.add(f); bar.add(tool); bar.add(help); txt = new JTextArea(); txt.setEditable(false); txt.setPreferredSize(new Dimension(780,600)); this.setTitle("Java Text Editor"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.setSize(800,700); Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((displaySize.width - this.getWidth()) / 2, (displaySize.height - this.getHeight()) / 2); this.setJMenuBar(bar); this.add(new JScrollPane(txt)); } private void savefile(File fn){ String content = this.txt.getText(); try { PrintWriter writer = new PrintWriter(new FileWriter(fn)); StringTokenizer token = new StringTokenizer(content," "); while(token.hasMoreTokens()){ writer.println(token.nextToken()); writer.flush(); } writer.close(); } catch (IOException e1) { e1.printStackTrace(); } } private void saveFileAs(){ JFileChooser fc = new JFileChooser(); int flag = fc.showSaveDialog(this); if (flag == JFileChooser.APPROVE_OPTION) { String name = fc.getSelectedFile().getParent() + "\" + fc.getSelectedFile().getName() + ".txt"; System.out.println(name); this.file = new File(name); savefile(this.file); } } @Override public void actionPerformed(ActionEvent e) { this.txt.setEditable(false); if(e.getSource() == newf){ this.file = null; this.txt.setText(""); JOptionPane.showMessageDialog(this, "Please input your content in the text area."); this.txt.setEditable(true); } else if(e.getSource() == openf){ this.txt.setText(""); JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode(JFileChooser.FILES_ONLY); int flag = fc.showOpenDialog(this); if(flag ==JFileChooser.APPROVE_OPTION){ this.file = fc.getSelectedFile(); try { Reader in = new InputStreamReader(new FileInputStream(this.file)); int tempbyte; String str = ""; while ((tempbyte = in.read()) != -1) { str += (char)tempbyte; } in.close(); this.txt.setText(str); } catch (IOException e1) { e1.printStackTrace(); } } }else if(e.getSource() == savef){ if(JOptionPane.showConfirmDialog(this, "Are you sure that you want to save the change?") == JOptionPane.YES_OPTION){ if(this.file == null){ saveFileAs(); }else{ savefile(this.file); } } }else if(e.getSource() == saveAs){ saveFileAs(); }else if(e.getSource() == exit){ this.dispose(); }else if(e.getSource() == edit){ this.txt.setEditable(true); }else if(e.getSource() == about){ AboutFrame.getFrame(); } } } import java.awt.Color; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JFrame; import javax.swing.JLabel; public class AboutFrame extends JFrame implements WindowListener{ private JLabel lbl = null; private static AboutFrame instance = null; private AboutFrame(){ this.setTitle("About This Editor"); this.setSize(250,100); this.lbl = new JLabel("This is a text editor implemented by java."); this.lbl.setForeground(Color.BLUE); this.add(lbl); this.addWindowListener(this); //this.setVisible(true); } public static AboutFrame getFrame(){ if(instance == null){ instance = new AboutFrame(); } instance.setVisible(true); return instance; } @Override public void windowOpened(WindowEvent e) { } @Override public void windowClosing(WindowEvent e) { this.setVisible(false); } @Override public void windowClosed(WindowEvent e) { } @Override public void windowIconified(WindowEvent e) { } @Override public void windowDeiconified(WindowEvent e) { } @Override public void windowActivated(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { } }

java jfilechooser 文本编辑器

保存(另存)的话还是用FileDialog吧。

写个方法,在另存为时直接调用就OK了,如下: public void saveAs() { try { FileDialog fd = new FileDialog(frame, "另存为", FileDialog.SAVE);//frame为所依附的窗体 fd.setVisible(true); FileOutputStream out = new FileOutputStream(fd.getDirectory() + fd.getFile() + ".txt");//存为.txt格式,文件名为你输入的字符串 String str = ta.getText(); for (int n = 0; n < str.length(); n++) { out.write((byte) str.charAt(n)); } out.close(); } catch (Exception ess) { } }

spinservers($89/月),圣何塞10Gbps带宽服务器,达拉斯10Gbps服务器

spinservers是Majestic Hosting Solutions LLC旗下站点,主要提供国外服务器租用和Hybrid Dedicated等产品的商家,数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,高配置硬件,支持使用PayPal、信用卡、支付宝或者微信等付款方式。目前,商家针对部分服务器提供优惠码,优惠后达拉斯机房服务器最低每月89美元起,圣何塞机房服务器最低每月...

百纵科技(1399元/月)香港CN2站群232IP

湖南百纵科技有限公司是一家具有ISP ICP 电信增值许可证的正规公司,多年不断转型探索现已颇具规模,公司成立于2009年 通过多年经营积累目前已独具一格,公司主要经营有国内高防服务器,香港服务器,美国服务器,站群服务器,东南亚服务器租用,国内香港美国云服务器,以及全球专线业务!活动方案:主营:1、美国CN2云服务器,美国VPS,美国高防云主机,美国独立服务器,美国站群服务器,美国母机。2、香港C...

韩国服务器租用优惠点评大全

韩国服务器怎么样?韩国云服务器租用推荐?韩国服务器距离中国近,有天然的地域优势,韩国服务器速度快而且非常稳定!有不少有亚洲市场的外贸公司选择韩国服务器开拓业务,韩国服务器因自身的优势也受到不少用户的青睐。目前的IDC市场上,韩国、香港、美国三个地方的服务器几乎占据了海外服务器的百分之九十以上。韩国服务器相比美国服务器来说速度更快,而相比香港机房来说则带宽更充足,占用市场份额非常大。那么,韩国服务器...

java文本编辑器为你推荐
连接池什么叫做“连接池机制”搜索引擎有哪些1.什么是搜索引擎?举出几个常用的搜索引擎。空间背景图片怎么设置空间背景图片jsp源码jsp 中网站的首页源代码里程碑2现在入手一台里程碑2如何?约束是什么意思日语里的“约定”和“约束”哪个是中文里“约定”的意思,那另外一个是什么意思3g模块3G上网功:3G模块是什么意思?网络连接受限制网络连接受限制flash透明FLASH背景怎么设置透明跨境电商开发跨境电商怎么做
vps主机 美国服务器租用 国内vps 国外主机 idc评测网 godaddy域名转出 NetSpeeder 搜狗抢票助手 eq2 英文站群 嘟牛 河南移动邮件系统 200g硬盘 静态空间 服务器是干什么的 web服务器是什么 登陆空间 石家庄服务器托管 中国联通宽带测速 美国迈阿密 更多