简单记事本的实现

实验源码

主类

package test1;

import javax.swing.JFrame;
import javax.swing.JTextArea; public class WordPAD { public static void main(String[] args) {
new Note();
}
}

Note类

package test1;

import javax.swing.*;
import javax.swing.undo.UndoManager; import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Scanner;
public class Note {
JFrame frame;
JTextArea area;
JMenu jmenu,jmeun1;
JMenuBar bar;
JScrollPane scr;
JMenuItem newItem,openItem,saveItem,closeItem;
JMenuItem cx,jq,fz,zt,sc;
JPanel butpan=new JPanel();
int result=0;
UndoManager um;
byte b[];
InputStream input;
OutputStream out; public Note() {
frame=new JFrame("L L");
area=new JTextArea(30,40);
jmenu=new JMenu("文件");
jmeun1=new JMenu("编辑");
jmenu.setIcon(new ImageIcon("C:\\Users\\26404\\Desktop\\1.PNG"));
jmenu.addSeparator();
bar=new JMenuBar();
scr=new JScrollPane(area,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
newItem=new JMenuItem("新建(N)",new ImageIcon("C:\\Users\\26404\\Desktop\\2.PNG"));
openItem=new JMenuItem("打开(O)",new ImageIcon("C:\\Users\\26404\\Desktop\\3.PNG"));
saveItem=new JMenuItem("另存为(A)",new ImageIcon("C:\\Users\\26404\\Desktop\\5.PNG"));
closeItem=new JMenuItem("关闭(X)",new ImageIcon("C:\\Users\\26404\\Desktop\\4.PNG"));
cx=new JMenuItem("撤销(U)");
jq=new JMenuItem("剪切(T)");
fz=new JMenuItem("复制(C)");
zt=new JMenuItem("粘贴(P)");
sc=new JMenuItem("删除(L)");
newItem.setMnemonic(KeyEvent.VK_N);
openItem.setMnemonic(KeyEvent.VK_O);
saveItem.setMnemonic(KeyEvent.VK_A);
closeItem.setMnemonic(KeyEvent.VK_X);
newItem.setAccelerator(KeyStroke.getKeyStroke('N', java.awt.Event.CTRL_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke('O', java.awt.Event.CTRL_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke('A', java.awt.Event.CTRL_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke('X', java.awt.Event.CTRL_MASK));
cx.setMnemonic(KeyEvent.VK_U);
jq.setMnemonic(KeyEvent.VK_T);
fz.setMnemonic(KeyEvent.VK_C);
zt.setMnemonic(KeyEvent.VK_P);
sc.setMnemonic(KeyEvent.VK_L);
cx.setAccelerator(KeyStroke.getKeyStroke('Z', java.awt.Event.CTRL_MASK));
jq.setAccelerator(KeyStroke.getKeyStroke('X', java.awt.Event.CTRL_MASK));
fz.setAccelerator(KeyStroke.getKeyStroke('C', java.awt.Event.CTRL_MASK));
zt.setAccelerator(KeyStroke.getKeyStroke('V', java.awt.Event.CTRL_MASK));
sc.setAccelerator(KeyStroke.getKeyStroke("Del")); jmenu.add(newItem);
jmenu.add(openItem);
jmenu.add(saveItem);
jmenu.add(closeItem);
jmeun1.add(cx);
jmeun1.add(jq);
jmeun1.add(fz);
jmeun1.add(zt);
jmeun1.add(sc); bar.add(jmenu);
bar.add(jmeun1);
frame.add(scr);
frame.setJMenuBar(bar); newItem.addActionListener(new ActionListener() {//新建
public void actionPerformed(ActionEvent e) {
if(e.getSource()==newItem)
new Note();
}
}); JFileChooser chooser=new JFileChooser();
openItem.addActionListener(new ActionListener() {//打开
public void actionPerformed(ActionEvent e) {
File file=null;
if(e.getSource()==openItem) {
area.setText("");
chooser.showOpenDialog(frame);
file=chooser.getSelectedFile();
if(file!=null) {
try {
Scanner scan=new Scanner(new FileInputStream(file));
scan.useDelimiter("\n");
while(scan.hasNext()) {
area.append(scan.next ());
area.append("\n");
}
scan.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
}
}
}); saveItem.addActionListener(new ActionListener() {//另存为
public void actionPerformed(ActionEvent e) {
File file;
chooser.showSaveDialog(frame);
file=chooser.getSelectedFile();
if(!file.exists()) {
JOptionPane.showMessageDialog(null, "创建文件"+file.getName());
try {
file.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
}
try {
PrintStream out=new PrintStream(new FileOutputStream(file));
out.print(area.getText());
out.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
}); closeItem.addActionListener(new ActionListener() {//关闭
public void actionPerformed(ActionEvent e) {
if(e.getSource()==closeItem)
System.exit(1);
}
}); cx.addActionListener(new ActionListener() {//撤销
public void actionPerformed(ActionEvent e) {
um=new UndoManager();
if(e.getSource()==cx)
if (um.canUndo())
{
um.undo();
}
}
}); zt.addActionListener(new ActionListener() {//粘贴
public void actionPerformed(ActionEvent e) {
if(e.getSource()==zt) {
area.paste();
}
}
}); fz.addActionListener(new ActionListener() {//复制
public void actionPerformed(ActionEvent e) {
if(e.getSource()==fz)
area.copy();
}
}); jq.addActionListener(new ActionListener() {//剪切
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jq)
area.cut();
}
}); sc.addActionListener(new ActionListener() {//删除
public void actionPerformed(ActionEvent e) {
if(e.getSource()==sc)
{
String str=area.getSelectedText();
String newStr = area.getText().replace(str, "");
area.setText(newStr);
}
}
}); frame.setLocation(350, 184);
frame.setSize(600,400);
frame.setVisible(true);
area.setEditable(true);
}
}

实验结果





这段代码的撤销功能还没实现,其余的像复制、粘贴、剪切都实现了,其实也不难,直接调用相应的方法。

JDBC

JDBC是Java提供的一套数据库操作标准。JDBC提供了一种与平台无关的用于执行SQL语言的标准java API,可以方便地实现多种关系型数据库地统一操作。

MySQL数据库

MySQL常用命令

1.连接MySQL数据库

mysql-u用户名-p密码

2.创建数据库

创建数据库:CREATE DATABASE 数据库名称;
删除数据库:DROP DATABSE 数据库库名称;

3.使用数据库

USE 数据库名称;

4.创建数据库表

CREATE TABLE 表名称(
字段名称1 字段类型 [DEFAULT 默认值][约束],
字段名称2 字段类型 [DEFAULT 默认值][约束],
·····,
字段名称n 字段类型 [DEFAULT 默认值][约束],
);

5.删除数据库表

DROP TABLE 表名称;

6.查看表结构

DESC 表名称;

7.查看数据库信息

查看全部数据库:SHOW DATABASES;
看一个数据库的全部表:SHOW TABLES;

MySQL中的数据类型





增加数据

INSERT INTO 表名称[(字段1,字段2,字段3,····字段n)]VALUSE(值1,值2,值3···值n);

删除数据

DELETE FROM [删除条件];

更新数据

UPDATE 表名称 SET 字段1=值1,···字段n=值1[WHERE 更新条件];

查询数据

简单查询语句

SELECT{*|column alias}
FROM 表名称 别名
[WHERE condition(s)];

查询全部数据

SELSCT *FROM user;

Connection接口的常用方法



第十四周课程总结&实验报告的更多相关文章

  1. 第十四周课程总结 & 实验报告

    一.JDBC JDBC概述 JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成 JDBC的主要操作 ...

  2. 第十四周课程总结&实验报告(简单记事本的实现)

    1.JDBC概述 JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成 主要常用操作类与接口: ja ...

  3. 第四周课程总结&实验报告(二)

    Java实验报告(二) 实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造 ...

  4. 第四周课程总结&实验报告二

    第四周课程总结 第四周课程总结 本周重点为学习String;首先String用以创建字符串,且通过有一次课堂练习加强理解到:String 类是不可改变的,一旦创建了 String 对象,那它的值就无法 ...

  5. 第四周课程总结&实验报告

    实验报告 1.写一个名为Rectangle的类表示矩形. 其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求 ...

  6. 第十四周课程总结&&实验总结

    课程总结: 1.Java实现跨平台操作的工具:JDBC. 它的意思是java数据库连接,可以方便的实现多种关系型数据库的统一操作,它由一组用java语句编写的类和接口组成. 2.JDBC驱动分类: J ...

  7. 第三周课程总结&实验报告

    课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...

  8. Java第三周课程总结&实验报告一

    第三周课程总结 1.关于面向对象的一些具体内容,明白了类与对象以及Java的封装性和构造方法以及对对象匿名的相关知识. 2.this关键字,它是表示类的成员属性(变量),使用this构造方法时必须放在 ...

  9. 第六周课程总结&实验报告(四)

    实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...

随机推荐

  1. linux 下使用github

    Linux下Git和GitHub环境的搭建 1.创建Github帐号  (name@server.com) 2.安装git [root@cloud ~]# yum install git -y 3.生 ...

  2. 洛谷P2634 [国家集训队]聪聪可可 点分治模板

    题意 在一棵树上任意选两个点,求它们距离模3为0的概率. 分析 树分治模板 Code #include<bits/stdc++.h> #define fi first #define se ...

  3. CDQ分治的嵌套

    CDQ的嵌套 上一篇博客介绍了一下CDQ的入门思想.这里再介绍一下它的进阶,CDQ套CDQ.其实如果对入门思想掌握的透彻,嵌套也是很容易掌握的,思想是一样的. 什么是嵌套 简单地说,有的问题,如果用一 ...

  4. [笔记]C++拷贝构造和移动构造

    一.拷贝构造 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都没有默认值,则此构造函数是拷贝构造函数.(<C++Primer,第五版>) class Foo { publi ...

  5. shell [ ] 和 [[ ]] 区别

    [参考文章]:shell if [[ ]]和[ ]区别 || && [参考文章]:Shell test 命令 1. [ ] 和 test test  等同于 [ ] 可用于判断某个条件 ...

  6. JS高级_数据类型

    1.分类: a.基本(值)类型: * String :任意字符串 * Number :任意数字 * boolean : true/false * undefined :undefined * null ...

  7. Vbox中多台虚拟机搭建简单子网

    一.目标拓扑结构: 要使192.168.31.1和192.168.32.1互相ping通. 二.步骤及问题: 1.路由器配置 SEED_Router配置IP并开启路由转发协议: ifconfig et ...

  8. 10分钟梳理MySQL核心知识点

    数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 做业务,要懂基本的SQL语句:做性能优化,要懂索引,懂引擎:做分库分表,要懂主从,懂读写分离... 今天我们用10分钟,重 ...

  9. 1.ibatis核心类

  10. Docker镜像搭建ubuntu下samba目录共享

    第一种方法:(未使用) yum install docker // 下载镜像 docker pull dperson/samba // 启动镜像,具体看文档,但重要的配置是以下的注释 docker r ...