程序—java记事本
功能实现
- 文件:
- 新建:清空文件,如果曾经打开了一个文件的话,就不对源文件内容进行覆盖
- 打开:打开文件浏览器,添加一个.txt文件
- 保存:用新内容将原文件覆盖掉
- 另存为:保存到一个新的目录
- 退出:退出程序
- 编辑:
- 复制:将选中的文本用一个变量进行保存
- 剪切:复制后删除
- 粘贴:将复制后的文本粘贴到光标位置,如果鼠标选中了一段文字后粘贴,会将选中文字进行覆盖
- 删除:删除选中文字
- 查找:打开一个新的面板,在里面可以进行查找操作
- 替换:打开一个面板,可以进行查找操作,在查找到之后可以对选中的文本进行替换操作
- 字体:
- 加粗
- 倾斜
- Color:
- black
- red
- blue
- green
- others:打开颜色选择器
源码分析
- 文件:
- 先声明一个变量
private JTextArea write; //作为编辑的文本框 private File cFile; //作为打开文件时保存文件的变量
- 先声明一个变量
- 打开:打开文件浏览器,添加一个.txt文件
JMenuItem open = new JMenuItem("打开");JFileChooser chooser = new JFileChooser();open.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);int value = chooser.showOpenDialog(Main.this);try {if (value == JFileChooser.APPROVE_OPTION) {chooser.setFileFilter(new FileNameExtensionFilter("可选文件", "txt"));cFile = chooser.getSelectedFile();BufferedReader br = new BufferedReader(new FileReader(cFile));String thisLine;write.setText("");while ((thisLine = br.readLine()) != null) {write.append(thisLine + "\r\n");}br.close();}} catch (Exception e2) {System.err.println("open " + e2);}}});
- 保存:用新内容将原文件覆盖掉
JMenuItem save = new JMenuItem("保存");save.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {if (cFile == null) {return;} else {BufferedWriter bw = new BufferedWriter(new FileWriter(cFile));bw.write(write.getText());bw.close();} } catch (Exception e2) {System.err.println("save " + e);}}});
- 另存为:保存到一个新的目录
JMenuItem saveToNewPlace = new JMenuItem("另存为");saveToNewPlace.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int value = chooser.showSaveDialog(Main.this);try {if (value == JFileChooser.APPROVE_OPTION) {cFile = null;File file = chooser.getSelectedFile();if (file.exists() == false) {file.createNewFile();}BufferedWriter bw = new BufferedWriter(new FileWriter(file));bw.write(write.getText());bw.close();}} catch (Exception e2) {System.err.println("saveToNew " + e);}}});
- 退出:退出程序
JMenuItem out = new JMenuItem("退出");out.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.exit(0);}});
- 编辑:
- 声明变量;
private String copyText;//复制时暂存文本 private int start;//用户光标前面的位置 private int end;//用户光标后面的位置
- 复制:将选中的文本用一个变量进行保存
JMenuItem copy = new JMenuItem("复制");copy.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {copy();}});
private void copy(){copyText = write.getSelectedText();}
- 剪切:复制后删除
JMenuItem deleteAndCopy = new JMenuItem("剪切");deleteAndCopy.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (write.getSelectedText() != null) {copyText = write.getSelectedText();delete();}}});
- 粘贴:将复制后的文本粘贴到光标位置,如果鼠标选中了一段文字后粘贴,会将选中文字进行覆盖
JMenuItem zhan = new JMenuItem("粘贴");zhan.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {zhan();}});
private void zhan(){if (copyText != null) {StringBuffer sb = new StringBuffer(write.getText().toString());String s1 = sb.substring(0, write.getSelectionStart());String s2 = sb.substring(write.getSelectionEnd());write.setText(s1);write.append(copyText);write.append(s2);}}
- 删除:删除选中文字
JMenuItem delete= new JMenuItem("删除");delete.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {delete();}});
private void delete(){if (write.getSelectedText() != null) {StringBuffer sb = new StringBuffer(write.getText().toString());String s1 = sb.substring(0, write.getSelectionStart());String s2 = sb.substring(write.getSelectionEnd());write.setText(s1);write.append(s2);}}
- 查找:打开一个新的面板,在里面可以进行查找操作
JMenuItem find = new JMenuItem("查找");find.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {find();}});
private void find(){EventQueue.invokeLater(new Runnable() {public void run() {try {Find frame = new Find();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}
- 替换:打开一个面板,可以进行查找操作,在查找到之后可以对选中的文本进行替换操作
JMenuItem replace = new JMenuItem("替换");replace.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {replace();}});
private void replace(){EventQueue.invokeLater(new Runnable() {public void run() {try {Replace frame = new Replace();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}
- 字体:
- 加粗
- 倾斜
JCheckBoxMenuItem blod = new JCheckBoxMenuItem("Blod");JCheckBoxMenuItem italic = new JCheckBoxMenuItem("italic");blod.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {if (blod.isSelected()) {if (italic.isSelected()) {write.setFont(new Font("Arial", Font.BOLD + Font.ITALIC, 20));} else {write.setFont(new Font("Arial", Font.BOLD, 20));}} else {if (italic.isSelected()) {write.setFont(new Font("Arial", Font.ITALIC, 20));} else {write.setFont(new Font("Arial", Font.PLAIN, 20));}}}});italic.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {if (italic.isSelected()) {if (blod.isSelected()) {write.setFont(new Font("Arial", Font.BOLD + Font.ITALIC, 20));}else {write.setFont(new Font("Arial", Font.ITALIC, 20));}} else {if (blod.isSelected()) {write.setFont(new Font("Arial", Font.BOLD, 20));}else {write.setFont(new Font("Arial", Font.PLAIN, 20));}}}});
- Color:
- black
JRadioButtonMenuItem black = new JRadioButtonMenuItem("black");black.setSelected(true);black.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {write.setForeground(Color.black); //其他的几种颜色只需要改着一行代码就行}});
- red
- blue
- green
- others:打开颜色选择器
JMenuItem other = new JMenuItem("others...");other.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {JColorChooser jc = new JColorChooser(write.getForeground());Color be = write.getForeground();Color co = write.getForeground();co = jc.showDialog(null, "请选择颜色", co);if (co == null) {write.setForeground(be);} else {bg.clearSelection();write.setForeground(co);}}});
成品图片
一部分界面:
全部代码
- 整体描述
- 为了方便,代码中将查找和删除的界面全部做成了内部类
- 有部分代码出现了复制粘贴的情况,因此这个版本并不出彩,希望大家进行改进
- 全篇代码
package note2;import java.awt.BorderLayout; import java.awt.Color; import java.awt.EventQueue; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.JScrollPane; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.Font; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import javax.swing.event.CaretEvent; import javax.swing.JRadioButtonMenuItem; import javax.swing.JCheckBoxMenuItem; import javax.swing.JColorChooser; import javax.swing.JFileChooser; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.awt.event.ItemListener; import java.awt.event.ItemEvent;public class Main extends JFrame {private JTextArea write;private File cFile;private String copyText;private int start;private int end;public Main() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 927, 1090);JScrollPane scrollPane = new JScrollPane();getContentPane().add(scrollPane, BorderLayout.CENTER);JMenuBar menuBar = new JMenuBar();scrollPane.setColumnHeaderView(menuBar);JMenu fileMenu = new JMenu("文件");menuBar.add(fileMenu);JMenuItem open = new JMenuItem("打开");JFileChooser chooser = new JFileChooser();open.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);int value = chooser.showOpenDialog(Main.this);try {if (value == JFileChooser.APPROVE_OPTION) {chooser.setFileFilter(new FileNameExtensionFilter("可选文件", "txt"));cFile = chooser.getSelectedFile();BufferedReader br = new BufferedReader(new FileReader(cFile));String thisLine;write.setText("");while ((thisLine = br.readLine()) != null) {write.append(thisLine + "\r\n");}br.close();}} catch (Exception e2) {System.err.println("open " + e2);}}});JMenuItem newfile = new JMenuItem("新建");newfile.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {cFile = null;write.setText("");}});fileMenu.add(newfile);fileMenu.add(open);JMenuItem save = new JMenuItem("保存");save.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {if (cFile == null) {return;} else {BufferedWriter bw = new BufferedWriter(new FileWriter(cFile));bw.write(write.getText());bw.close();} } catch (Exception e2) {System.err.println("save " + e);}}});fileMenu.add(save);JMenuItem saveToNewPlace = new JMenuItem("另存为");saveToNewPlace.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int value = chooser.showSaveDialog(Main.this);try {if (value == JFileChooser.APPROVE_OPTION) {cFile = null;File file = chooser.getSelectedFile();if (file.exists() == false) {file.createNewFile();}BufferedWriter bw = new BufferedWriter(new FileWriter(file));bw.write(write.getText());bw.close();}} catch (Exception e2) {System.err.println("saveToNew " + e);}}});fileMenu.add(saveToNewPlace);JMenuItem out = new JMenuItem("退出");out.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.exit(0);}});fileMenu.add(out);JMenu editMenu = new JMenu("编辑");menuBar.add(editMenu);JMenuItem copy = new JMenuItem("复制");copy.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {copy();}});editMenu.add(copy);JMenuItem deleteAndCopy = new JMenuItem("剪切");deleteAndCopy.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (write.getSelectedText() != null) {copyText = write.getSelectedText();delete();}}});editMenu.add(deleteAndCopy);JMenuItem zhan = new JMenuItem("粘贴");zhan.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {zhan();}});editMenu.add(zhan);JMenuItem delete= new JMenuItem("删除");delete.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {delete();}});editMenu.add(delete);JMenuItem find = new JMenuItem("查找");find.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {find();}});editMenu.add(find);JMenuItem replace = new JMenuItem("替换");replace.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {replace();}});editMenu.add(replace);JMenu textStyle = new JMenu("字体");editMenu.add(textStyle);JCheckBoxMenuItem blod = new JCheckBoxMenuItem("Blod");JCheckBoxMenuItem italic = new JCheckBoxMenuItem("italic");blod.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {if (blod.isSelected()) {if (italic.isSelected()) {write.setFont(new Font("Arial", Font.BOLD + Font.ITALIC, 20));} else {write.setFont(new Font("Arial", Font.BOLD, 20));}} else {if (italic.isSelected()) {write.setFont(new Font("Arial", Font.ITALIC, 20));} else {write.setFont(new Font("Arial", Font.PLAIN, 20));}}}});textStyle.add(blod);italic.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {if (italic.isSelected()) {if (blod.isSelected()) {write.setFont(new Font("Arial", Font.BOLD + Font.ITALIC, 20));}else {write.setFont(new Font("Arial", Font.ITALIC, 20));}} else {if (blod.isSelected()) {write.setFont(new Font("Arial", Font.BOLD, 20));}else {write.setFont(new Font("Arial", Font.PLAIN, 20));}}}});textStyle.add(italic);JMenu color = new JMenu("Color");menuBar.add(color);ButtonGroup bg = new ButtonGroup();JRadioButtonMenuItem black = new JRadioButtonMenuItem("black");black.setSelected(true);black.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {write.setForeground(Color.black);}});color.add(black);JRadioButtonMenuItem red = new JRadioButtonMenuItem("red");red.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {write.setForeground(Color.red);}});color.add(red);JRadioButtonMenuItem blue = new JRadioButtonMenuItem("blue");blue.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {write.setForeground(Color.blue);}});color.add(blue);JRadioButtonMenuItem green = new JRadioButtonMenuItem("green");green.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) {write.setForeground(Color.green);}});color.add(green);bg.add(red);bg.add(green);bg.add(blue);bg.add(black);JMenuItem other = new JMenuItem("others...");other.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {JColorChooser jc = new JColorChooser(write.getForeground());Color be = write.getForeground();Color co = write.getForeground();co = jc.showDialog(null, "请选择颜色", co);if (co == null) {write.setForeground(be);} else {bg.clearSelection();write.setForeground(co);}}});color.add(other);JScrollPane text = new JScrollPane();scrollPane.setViewportView(text);write = new JTextArea();write.setFont(new Font("Arial", Font.PLAIN, 20));text.setViewportView(write);}public void CaretUpdate(CaretEvent e) {start = e.getDot();end = e.getMark();int temp = start;if (start > end) {start = end;end = temp;}}private void copy(){copyText = write.getSelectedText();}private void zhan(){if (copyText != null) {StringBuffer sb = new StringBuffer(write.getText().toString());String s1 = sb.substring(0, write.getSelectionStart());String s2 = sb.substring(write.getSelectionEnd());write.setText(s1);write.append(copyText);write.append(s2);}}private void delete(){if (write.getSelectedText() != null) {StringBuffer sb = new StringBuffer(write.getText().toString());String s1 = sb.substring(0, write.getSelectionStart());String s2 = sb.substring(write.getSelectionEnd());write.setText(s1);write.append(s2);}}private void find(){EventQueue.invokeLater(new Runnable() {public void run() {try {Find frame = new Find();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}private void replace(){EventQueue.invokeLater(new Runnable() {public void run() {try {Replace frame = new Replace();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {Main frame = new Main();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}class Find extends JFrame { private JPanel contentPane;private JTextField textField;private boolean isDown;private int start;private int last;/*** Create the frame.*/public Find() {setResizable(false);setAlwaysOnTop(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(100, 100, 650, 250);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);ButtonGroup bg = new ButtonGroup();JRadioButton up = new JRadioButton("向上");up.setBounds(159, 99, 177, 29);contentPane.add(up);bg.add(up);JRadioButton down = new JRadioButton("向下");down.setSelected(true);isDown = true;down.setBounds(159, 137, 177, 29);contentPane.add(down);bg.add(down);textField = new JTextField();textField.setBounds(97, 45, 345, 27);contentPane.add(textField);textField.setColumns(10);down.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {if (down.isSelected()) {isDown = true;} else {isDown = false;}}});JButton search = new JButton("查找");search.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (write.getSelectionStart() != 0 || write.getSelectionEnd() != 0) {start = write.getSelectionStart();last = write.getSelectionEnd();}if (isDown == true) {String text = textField.getText().toString();start = write.getText().toString().indexOf(text, last);if (start != -1) {write.setSelectionStart(start);write.setSelectionEnd(start + text.length());}}else{String text = textField.getText().toString();start = write.getText().toString().lastIndexOf(text,start-1);if (start != -1) {write.setSelectionStart(start);write.setSelectionEnd(start+text.length());}}}});search.setBounds(466, 44, 123, 29);contentPane.add(search);}}class Replace extends JFrame {private JPanel contentPane;private JTextField target;private JTextField retext;private boolean isDown;private int start;private int last;public Replace() {System.out.println("replace");setResizable(false);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(100, 100, 650, 250);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(null);isDown = true;JButton findNext = new JButton("查找下一个");findNext.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (write.getSelectionStart() != 0 || write.getSelectionEnd() != 0) {start = write.getSelectionStart();last = write.getSelectionEnd();}if (isDown == true) {String text = target.getText().toString();start = write.getText().toString().indexOf(text, last);if (start != -1) {write.setSelectionStart(start);write.setSelectionEnd(start + text.length());}}else{String text = target.getText().toString();start = write.getText().toString().lastIndexOf(text,start-1);if (start != -1) {write.setSelectionStart(start);write.setSelectionEnd(start+text.length());}}}});findNext.setBounds(441, 50, 123, 29);contentPane.add(findNext);JButton replace = new JButton("替换");replace.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try{if (write.getSelectedText().toString().equals(target.getText().toString())) {System.out.println("pipei");StringBuffer sb = new StringBuffer(write.getText().toString());String s1 = sb.substring(0, write.getSelectionStart());String s2 = sb.substring(write.getSelectionEnd());write.setText(s1);write.append(retext.getText().toString());write.append(s2);} }catch (Exception sd) {}}});replace.setBounds(441, 109, 123, 29);contentPane.add(replace);target = new JTextField();target.setBounds(110, 51, 290, 27);contentPane.add(target);target.setColumns(10);JLabel li = new JLabel("目标文字");li.setBounds(14, 54, 81, 21);contentPane.add(li);JLabel li2 = new JLabel("替换文字");li2.setBounds(14, 113, 81, 21);contentPane.add(li2);retext = new JTextField();retext.setBounds(110, 110, 290, 27);contentPane.add(retext);retext.setColumns(10);ButtonGroup bg = new ButtonGroup();JRadioButton up = new JRadioButton("向上");up.setBounds(113, 170, 81, 29);contentPane.add(up);JRadioButton down = new JRadioButton("向下");down.setSelected(true);down.setBounds(219, 170, 88, 29);contentPane.add(down);bg.add(up);bg.add(down);down.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {if (down.isSelected()) {isDown = true;}else{isDown = false;}}});JButton replaceall = new JButton("全部替换");replaceall.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (write.getSelectionStart() != 0 || write.getSelectionEnd() != 0) {start = write.getSelectionStart();last = write.getSelectionEnd();}try{if (write.getSelectedText().toString().equals(target.getText().toString())) {System.out.println("pipei");StringBuffer sb = new StringBuffer(write.getText().toString());String s1 = sb.substring(0, write.getSelectionStart());String s2 = sb.substring(write.getSelectionEnd());write.setText(s1);write.append(retext.getText().toString());write.append(s2);} }catch (Exception sd) {}while(start != -1){System.out.println("ahah");if (isDown == true) {String text = target.getText().toString();start = write.getText().toString().indexOf(text, last);if (start != -1) {write.setSelectionStart(start);write.setSelectionEnd(start + text.length());}}else{String text = target.getText().toString();start = write.getText().toString().lastIndexOf(text,start-1);if (start != -1) {write.setSelectionStart(start);write.setSelectionEnd(start+text.length());}}try{if (write.getSelectedText().toString().equals(target.getText().toString())) {System.out.println("pipei");StringBuffer sb = new StringBuffer(write.getText().toString());String s1 = sb.substring(0, write.getSelectionStart());String s2 = sb.substring(write.getSelectionEnd());write.setText(s1);write.append(retext.getText().toString());write.append(s2);} }catch (Exception sd) {}}}});replaceall.setBounds(441, 170, 123, 29);contentPane.add(replaceall);}} }
程序—java记事本相关推荐
- 编写运行最简单的java程序——使用记事本编写java程序
编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...
- JAVA记事本的图形用户界面应用程序含过滤
JAVA记事本的图形用户界面应用程序 过滤 题目简介: 整体分析: 实验代码: package note;import java.awt.EventQueue; import java.awt.eve ...
- Java小程序之记事本
这个记事本只做了个界面,里面的功能就做了三四个吧!特别适合新手学做GUI这一章. 我主要分了两大类,代码注释上面都有. 第一大类我主要把用到的所有组件全部定义了出来,这样看起来更方便一点 第二大类就是 ...
- java记事本实践意义,Java记事本程序课程设计报告
Java记事本程序课程设计报告 课程设计课程设计报告书报告书 课程名称课程名称 面向对象课程设计面向对象课程设计 设计题目设计题目 记事本程序记事本程序 专业班级专业班级 学学 号号 姓姓 名名 目录 ...
- java记事本课程设计,java记事本课程设计
java记事本课程设计 一. 设计内容和要求1. 设计一个具有 GUI 界面的记事本 含有简单的文字编辑功能 如 剪切.复制.粘贴.删除 还能实现保存.另存为.设置字体和颜色等功能.2. 本程 ...
- java记事本打开功能_Java简易实现记事本的打开与保存
记事本的打开与保存 一些总结 * Swing中有时方法不显示,需要把方setVisible(true)放到最后执行 * AWT中的TextArea默认是中间布局 * fileDialog对话框Load ...
- java 记事本源代码_JAVA记事本源代码 收藏
JAVA记事本源代码 import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; impor ...
- java记事本简单,java简单完整记事本
JAVA 程序设计实 验报告 院 系: 信息工程系 专 业: 计算机应用技术 班 级: 11 计算机 01 班 姓 名: Civen 任课教师: XXX 实验题目: JAVA 简单记事本...... ...
- 微信小程序之记事本管理系统(含源码+论文+答辩PPT等)
项目功能简介: 该项目含有源码等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序做的记事本前台和Java做的后台管理系统: 微信小程序--记事本前台涉及技术:WXML 和 WXS ...
最新文章
- PHP PDO 连接SQLSErver,PHP 使用 PDO 方式连接 sqlserver ,拼接 的 sql 命令总是报错
- shell脚本执行返回的状态码
- 基于python的搜索引擎论文_技术分享 - 基于python构建搜索引擎系列——(四)检索模型...
- java 顺序存储键值对_java://Comparator、Comparable的用法(按照要求将map集合的键值对进行顺序输出)...
- 不要假装努力,结果不会陪你演戏!
- Vue 路由懒加载
- 练习:查找指定目录(包括子目录)下的视频(格式为.mp4,.rmvb,.avi),并将目录存放在一个文件中...
- php连接打印机代码,PHP连接打印机
- LabView-之1: 串口驱动
- 邮件服务器的功能以及相关工作原理
- python分析掷骰子游戏
- vue实现下载excel模板、导入excel文件、导出excel文件
- linux连接一加手机,How To Build CyanogenMod Android (oneplus/bacon) On Linux
- 解决插件在IE增强保护模式下无法运行的问题
- 谈谈网络工程师的就业方向与薪资水平
- 各种数学平均数之间的关系
- Java实现Nginx图片上传
- 深圳地区近期面试100多道题汇总(含超详细答案)
- PHP安卓苹果APP在线封装打包制作源码 H5手机网站转APP 免签封装绿标
- 如何做一个优雅的Pod