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) { } }

ftlcloud9元/月,美国云服务器,1G内存/1核/20g硬盘/10M带宽不限/10G防御

ftlcloud(超云)目前正在搞暑假促销,美国圣何塞数据中心的云服务器低至9元/月,系统盘与数据盘分离,支持Windows和Linux,免费防御CC攻击,自带10Gbps的DDoS防御。FTL-超云服务器的主要特色:稳定、安全、弹性、高性能的云端计算服务,快速部署,并且可根据业务需要扩展计算能力,按需付费,节约成本,提高资源的有效利用率。活动地址:https://www.ftlcloud.com...

Linode($5/月),新用户注册送100美元,11个数据中心云服务器

关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...

JUSTG(5.99美元/月)最新5折优惠,KVM虚拟虚拟512Mkvm路线

Justg是一家俄罗斯VPS云服务器提供商,主要提供南非地区的VPS服务器产品,CN2高质量线路网络,100Mbps带宽,自带一个IPv4和8个IPv6,线路质量还不错,主要是用户较少,带宽使用率不高,比较空闲,不拥挤,比较适合面向非洲、欧美的用户业务需求,也适合追求速度快又需要冷门的朋友。justg的俄罗斯VPS云服务器位于莫斯科机房,到美国和中国速度都非常不错,到欧洲的平均延迟时间为40毫秒,...

java文本编辑器为你推荐
连接池什么是数据库连接池?谢谢了xhtmlHTML4,HTML5,XHTML 之间有什么区别按键精灵教程按键精灵怎么使用防护工地安全措施以及防护都有哪些资源优化配置社会资源优化配置的标志是什么?怎样实现?0x800ccc0f您的服务器意外终止了连接。其可能原因包括服务器出错、网络出错或长时间处于非活动状态。 0x800CCC0F教学视频网站谁有各种教学视频网站呀.?soap是什么意思捡肥皂是什么意思啊?无恶意,就好奇科学计算器说明书计算器的使用方法?省份证查询怎么查询我的身份证都注册了什么网站?
siteground 128m内存 日志分析软件 长沙服务器 网站在线扫描 服务器是干什么用的 starry qq金券 阿里云邮箱登陆地址 成都主机托管 卡巴斯基试用版下载 七十九刀 什么是dns qq空间打开很慢 so域名 winserver2008下载 美国vpn服务器 easypanel 电脑主机响 租主机 更多