第十四周课程总结&实验报告
简单记事本的实现
实验源码
主类
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表 ...
随机推荐
- 关于单片机特殊功能寄存器(SFR)和内存(RAM)公用地址:80-FF 如何区分
RAM 的 80-FF 需要间接寻址进行访问 如: MOV R0,#80H; MOV A,@R0 ; (内存 80H地址内的数据放到A中) SFR的80-FF需要直接寻址进行访问如: MOV ...
- MFC 树形控件
Tree Control属性:Has Buttons.Has Lines.Lines At Root这三个设为True 常用的事件:SelectChanged() ico图片放到项目的res文件夹中( ...
- zip:命令行下zip压缩/解压缩
在Ubuntu 18.04下验证,造冰箱的大熊猫@cnblogs 2019/6/6 序号 功能 命令行输入的命令 1 压缩单个文件 zip package.zip file 2 压缩多个文件 zip ...
- [Luogu] 时间复杂度
https://www.luogu.org/problemnew/show/P3952 考场上输出的是 "YES" "NO" ++ ,如果不是亲身经历,打死我我 ...
- [Luogu] 火柴排队
https://www.luogu.org/problemnew/show/P1966 离散化 树状数组求逆序对个数 #include <bits/stdc++.h> using name ...
- Codevs 1137 计算系数 2011年NOIP全国联赛提高组
1137 计算系数 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给定一个多项式(ax + by ...
- 一个轻量级的模态组件,“礼貌地”要求您的用户停止使用过时的IE浏览器
插件github地址:https://github.com/panteng/ie-blocker 我们在做项目时,会考虑到浏览器的兼容问题,当然做,全浏览器都支持的项目我还没经历过,也不想经历,目前做 ...
- js产生一个随机的字符串数字组合
/** * 随机生成字符串 * @param randomFlag 产生任意长度随机字母数字组合 * @param min 任意长度最小位[固定位数] * @param max 任意长度最大位 * @ ...
- Little Prince
You know — one loves the sunset, when one is so sad... 你知道的—当一个人情绪低落的时候,他会格外喜欢看日落...... If someone l ...
- [Javascript]客户端检测
客户端检测是一种行之有效的开发策略.但不到万不得已,就不要使用客户端检测.先设计通用的方案,然后根据浏览器之间的差异和各自的怪癖quirky,再使用特定于浏览器的技术增强该方案. 能力检测 Featu ...