第十四周课程总结&实验报告
简单记事本的实现
实验源码
主类
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接口的常用方法


第十四周课程总结&实验报告的更多相关文章
- 第十四周课程总结 & 实验报告
一.JDBC JDBC概述 JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成 JDBC的主要操作 ...
- 第十四周课程总结&实验报告(简单记事本的实现)
1.JDBC概述 JDBC提供了一种与平台无关的用于执行SQL语句的标准JavaAPI,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成 主要常用操作类与接口: ja ...
- 第四周课程总结&实验报告(二)
Java实验报告(二) 实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造 ...
- 第四周课程总结&实验报告二
第四周课程总结 第四周课程总结 本周重点为学习String;首先String用以创建字符串,且通过有一次课堂练习加强理解到:String 类是不可改变的,一旦创建了 String 对象,那它的值就无法 ...
- 第四周课程总结&实验报告
实验报告 1.写一个名为Rectangle的类表示矩形. 其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求 ...
- 第十四周课程总结&&实验总结
课程总结: 1.Java实现跨平台操作的工具:JDBC. 它的意思是java数据库连接,可以方便的实现多种关系型数据库的统一操作,它由一组用java语句编写的类和接口组成. 2.JDBC驱动分类: J ...
- 第三周课程总结&实验报告
课程总结 在这周对Java进行了更深层次的学习,Java的学习也变得越来越困难而有趣,加入了一些新的构造新的方法,还学习了一些简化代码的方式. 面向对象的基本概念 对于面向对象的程序设计有三个主要特征 ...
- Java第三周课程总结&实验报告一
第三周课程总结 1.关于面向对象的一些具体内容,明白了类与对象以及Java的封装性和构造方法以及对对象匿名的相关知识. 2.this关键字,它是表示类的成员属性(变量),使用this构造方法时必须放在 ...
- 第六周课程总结&实验报告(四)
实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...
随机推荐
- linux 下使用github
Linux下Git和GitHub环境的搭建 1.创建Github帐号 (name@server.com) 2.安装git [root@cloud ~]# yum install git -y 3.生 ...
- 洛谷P2634 [国家集训队]聪聪可可 点分治模板
题意 在一棵树上任意选两个点,求它们距离模3为0的概率. 分析 树分治模板 Code #include<bits/stdc++.h> #define fi first #define se ...
- CDQ分治的嵌套
CDQ的嵌套 上一篇博客介绍了一下CDQ的入门思想.这里再介绍一下它的进阶,CDQ套CDQ.其实如果对入门思想掌握的透彻,嵌套也是很容易掌握的,思想是一样的. 什么是嵌套 简单地说,有的问题,如果用一 ...
- [笔记]C++拷贝构造和移动构造
一.拷贝构造 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都没有默认值,则此构造函数是拷贝构造函数.(<C++Primer,第五版>) class Foo { publi ...
- shell [ ] 和 [[ ]] 区别
[参考文章]:shell if [[ ]]和[ ]区别 || && [参考文章]:Shell test 命令 1. [ ] 和 test test 等同于 [ ] 可用于判断某个条件 ...
- JS高级_数据类型
1.分类: a.基本(值)类型: * String :任意字符串 * Number :任意数字 * boolean : true/false * undefined :undefined * null ...
- Vbox中多台虚拟机搭建简单子网
一.目标拓扑结构: 要使192.168.31.1和192.168.32.1互相ping通. 二.步骤及问题: 1.路由器配置 SEED_Router配置IP并开启路由转发协议: ifconfig et ...
- 10分钟梳理MySQL核心知识点
数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 做业务,要懂基本的SQL语句:做性能优化,要懂索引,懂引擎:做分库分表,要懂主从,懂读写分离... 今天我们用10分钟,重 ...
- 1.ibatis核心类
- Docker镜像搭建ubuntu下samba目录共享
第一种方法:(未使用) yum install docker // 下载镜像 docker pull dperson/samba // 启动镜像,具体看文档,但重要的配置是以下的注释 docker r ...