java swing 记事本_Java Swing 记事本代码

这是一个使用Java Swing库创建的记事本程序代码示例。程序包含了新建、打开、保存、替换、查找等功能,并提供了撤销、剪切、复制、粘贴、删除等编辑操作。用户可以指定文件路径进行读写,程序还包含了关于对话框和版本信息展示。
摘要由CSDN通过智能技术生成

1 package swing;//记事本源代码

2 import java.awt.*;3 import java.awt.event.*;4 import java.io.*;5

6 import javax.swing.*;7

8 public class Run implementsActionListener{9 private JFrame frame=new JFrame("新记事本");10 private JTextArea jta=newJTextArea();11 private String result="";12 private boolean flag=true;13 privateFile f;14 private JButton jb=new JButton("开始");//开始菜单在运行的时候没看到啊???在哪里

15 private JTextField jtf=new JTextField(15);16 private JTextField jt=new JTextField(15);17 private JButton jbt=new JButton("替换为");18 private JButton jba=new JButton("全部替换");19 private Icon ic=new ImageIcon("D:\\java课堂笔记\\GUI\\11.gif");20 //这是它设置的默认路劲???可是我电脑上只有 CEF盘啊

21 privateString value;22 private int start=0;23 private JFrame jf=new JFrame("查找");24 private JFrame jfc=new JFrame("替换");25

26 @Override27 public voidactionPerformed(ActionEvent e) {28 String comm=e.getActionCommand();29 System.out.println("comm="+comm);30 if("新建".equals(comm)){//"新建".equals(comm)什么意思,后面的都不懂了???

31 if(!(frame.getTitle().equals("新记事本"))){32 if(!flag){33 write();34 newNew();35 }else{36 JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");37 int returnVal = jfc.showDialog(null,"保存为");38 if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性

39 f=jfc.getSelectedFile();40 flag=false;41 write();42 }43 }44 }else if(!(jta.getText().isEmpty())){45 JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");46 int returnVal = jfc.showDialog(null,"保存为");47 if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性

48 f=jfc.getSelectedFile();49 flag=false;50 write();51 newNew();52 }53 }else{54 newNew();55 }56 }else if("打开".equals(comm)){57 JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");58 jfc.setDialogType(JFileChooser.OPEN_DIALOG);59 int returnVal = jfc.showOpenDialog(null);60 if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性

61 f=jfc.getSelectedFile();62 frame.setTitle(f.getName());63 result=read();64 flag=false;65 value=result;66 jta.setText(result);67 }68 }else if("保存".equals(comm)){69 JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");70 if(flag){71 int returnVal = jfc.showDialog(null,"保存为");72 if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性

73 f=jfc.getSelectedFile();74 flag=false;75 write();76 }77 }else{78 write();79 }80 }else if("另存".equals(comm)){81 JFileChooser jfc=new JFileChooser("D:\\java课堂笔记");82 int returnVal = jfc.showDialog(null,"另存");83 if(returnVal == JFileChooser.APPROVE_OPTION) {//选择文件后再执行下面的语句,保证了程序的健壮性

84 f=jfc.getSelectedFile();85 write();86 }87 }else if("退出".equals(comm)){88 System.exit(0);89 }else if("撤销".equals(comm)){90 jta.setText(value);91 }else if("剪切".equals(comm)){92 value=jta.getText();93 jta.cut();94 }else if("复制".equals(comm)){95 jta.copy();96 }else if("粘贴".equals(comm)){97 value=jta.getText();98 jta.paste();99 }else if("删除".equals(comm)){100 value=jta.getText();101 jta.replaceSelection(null);102 }else if("全选".equals(comm)){103 jta.selectAll();104 }else if("查找".equals(comm)){105 value=jta.getText();106 jf.add(jtf,BorderLayout.CENTER);107 jf.add(jb,BorderLayout.SOUTH);108

109 jf.setLocation(300,300);110 jf.pack();111 jf.setVisible(true);112 jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);113 }else if("替换".equals(comm)){114 value=jta.getText();115 GridLayout gl=new GridLayout(3,3);116 JLabel jl1=new JLabel("查找内容:");117 JLabel jl2=new JLabel("替换为:");118 jfc.setLayout(gl);119 jfc.add(jl1);120 jfc.add(jtf);121 jfc.add(jb);122 jfc.add(jl2);123 jfc.add(jt);124 jfc.add(jbt);125 JLabel jl3=newJLabel();126 JLabel jl4=newJLabel();127 jfc.add(jl3);128 jfc.add(jl4);129 jfc.add(jba);130

131 jfc.setLocation(300,300);132 jfc.pack();133 jfc.setVisible(true);134 jfc.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);135 }else if("版本".equals(comm)){136 JDialog jd=new JDialog(frame,"关于对话框");137 jd.setSize(200,200);138 JLabel l=new JLabel("哈哈哈哈哈哈哈哈哈哈呵呵呵呵呵呵呵呵呵呵呵呵呵");139 jd.add(l,BorderLayout.CENTER);140 jd.setLocation(100,200);141 jd.setSize(300,300);142 jd.setVisible(true);143 //jd.pack();

144 jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);145 }else if("开始".equals(comm)||"下一个".equals(comm)){146 String temp=jtf.getText();147 int s=value.indexOf(temp,start);148 if(value.indexOf(temp,start)!=-1){149 jta.setSelectionStart(s);150 jta.setSelectionEnd(s+temp.length());151 jta.setSelectedTextColor(Color.GREEN);152 start=s+1;153 jb.setText("下一个");154 //value=value.substring(s+temp.length());//不能截取字串

155 }else{156 JOptionPane.showMessageDialog(jf, "查找完毕!", "提示", 0, ic);157 jf.dispose();158 }159 }else if("替换为".equals(comm)){160 String temp=jtf.getText();161 int s=value.indexOf(temp,start);162 if(value.indexOf(temp,start)!=-1){163 jta.setSelectionStart(s);164 jta.setSelectionEnd(s+temp.length());165 jta.setSelectedTextColor(Color.GREEN);166 start=s+1;167 jta.replaceSelection(jt.getText());168 }else{169 JOptionPane.showMessageDialog(jf, "查找完毕!", "提示", 0, ic);170 jf.dispose();171 }172 }else if("全部替换".equals(comm)){173 String temp=jta.getText();174 temp=temp.replaceAll(jtf.getText(), jt.getText());175 jta.setText(temp);176

177 }178 }179 publicString read(){180 String temp="";181 try{182 FileInputStream fis = newFileInputStream(f.getAbsolutePath());183 byte[] b=new byte[1024];184 while(true){185 int num=fis.read(b);186 if(num==-1)break;187 temp=temp+new String(b,0,num);188 }189 fis.close();190 } catch(Exception e1) {191 e1.printStackTrace();192 }193 returntemp;194 }195

196 public voidwrite(){197 try{198 FileOutputStream fos=newFileOutputStream(f);199 fos.write(jta.getText().getBytes());200 fos.close();201 } catch(Exception e) {202 e.printStackTrace();203 }204 }205 public voidnewNew(){206 frame.dispose();207 newRun();208 flag=true;209 }210 publicRun(){211 JMenuBar jmb=newJMenuBar();212 String[] menuLab={"文件","编辑","帮助"};213 String[][] menuItemLab={{"新建","打开","保存","另存","退出"},214 {"撤销","剪切","复制","粘贴","删除","全选","查找","替换"},215 {"版本"}};216 for(int i=0;i

227 JScrollPane jsp=new JScrollPane(jta);//滚动窗口面板

228 frame.add(jsp);229

230 jb.addActionListener(this);231 jbt.addActionListener(this);232 jba.addActionListener(this);233

234 frame.setLocation(200,50);235 frame.setSize(620,660);236 frame.setVisible(true);237 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);238 }239 public static voidmain(String[] args) {240 newRun();241 }242 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值