第十四周课程总结&实验报告(简单记事本的实现)
实验代码:
package 记事本; import java.awt.BorderLayout; import java.awt.Color; import java.awt.ComponentOrientation; import java.awt.Container; import java.awt.Dialog; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GraphicsEnvironment; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.PrintStream; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Scanner;
import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JColorChooser; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.KeyStroke; import javax.swing.event.CaretEvent; import javax.swing.event.CaretListener; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.text.BadLocationException; import javax.swing.undo.UndoManager;
public class Notepad implements ActionListener , CaretListener , ItemListener , MouseWheelListener{ //记事本窗口 static int windownum=0; //记录窗口数目 int pos,lineOfC,col,zishu,lastzishu; //行、列、字数、新建打开文本时的字数 boolean ischange; //记录文本域是否被改变过 JFrame HL = new JFrame("无标题 - 记事本"); //声明一个窗体对象 Container cont =HL.getContentPane(); //得到窗体容器 JTextArea jta = new JTextArea(); //构造一个文本域 JScrollPane scr = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);//滚动条组件,按需要出现 JMenu menuFile = new JMenu("文件(F)"); //定义JMenu组件 JMenu editFile = new JMenu("编辑(E)"); //定义JMenu组件 JMenu formatFile = new JMenu("格式(O)"); //定义JMenu组件 JMenu visonFile = new JMenu("查看(V)"); //定义JMenu组件 JMenu zoomFile = new JMenu("缩放(Z)"); //定义JMenu组件 JMenu helpFile = new JMenu("帮助(H)"); //定义JMenu组件 JMenuBar menuBar = new JMenuBar(); //定义JMenuBar JMenuItem newItem = new JMenuItem("新建(N)");//创建JMenuItem JMenuItem windowItem = new JMenuItem("新窗口(W)");//创建JMenuItem JMenuItem openItem = new JMenuItem("打开(O)");//创建JMenuItem JMenuItem exitItem = new JMenuItem("退出(E)");//创建JMenuItem JMenuItem typeface = new JMenuItem("字体(F)");//创建JMenuItem JMenuItem saveItem = new JMenuItem("保存(S)");//创建JMenuItem JMenuItem osaveItem = new JMenuItem("另存为(B)");//创建JMenuItem //文件 File file = null; //接收打开的文件 int result = 0; //接收操作的结果 JFileChooser fileChooser = new JFileChooser();//实例化文件选择框
public Notepad(){ windownum++; //记事本窗口数加一 ischange=true; //文本域没被改变过 //记事本窗体 HL.setLayout(new BorderLayout());//设置布局管理器 saveItem.addActionListener(this); //加入菜单项监听 osaveItem.addActionListener(this); //加入菜单项监听 openItem.addActionListener(this); //加入菜单项监听 openItem.setMnemonic('O'); //设置快捷键O saveItem.setMnemonic('S'); //设置快捷键S osaveItem.setMnemonic('B'); //设置快捷键A openItem.setAccelerator(KeyStroke.getKeyStroke('O', java.awt.Event.CTRL_MASK));//Ctrl+O saveItem.setAccelerator(KeyStroke.getKeyStroke('S', java.awt.Event.CTRL_MASK));//Ctrl+S osaveItem.setAccelerator(KeyStroke.getKeyStroke('B', java.awt.Event.CTRL_MASK));//Ctrl+A menuFile.add(saveItem); //加入菜单项 menuFile.add(osaveItem); //加入菜单项 menuFile.add(openItem); //加入菜单项 menuBar.add(menuFile); //加入menu HL.setJMenuBar(menuBar); //加入菜单栏 HL.add(scr,BorderLayout.CENTER); //文本加入到窗体 HL.setSize(800,700); //设置窗体大小 HL.setLocation(600,200); //设置窗体显示位置 HL.setVisible(true); //让组件显示 HL.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//退出应用程序不做任何事情,由窗口监听进行处理 //文件 fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("文本文档(*.txt)", "txt"));//文件过滤器 // fileChooser.setFileFilter(new FileNameExtensionFilter("文本文档(*.txt)", "txt")); //同上 fileChooser.setSelectedFile(new File("*.txt")); // 设置打开文件选择框后默认输入的文件名 } public void actionPerformed(ActionEvent e) { //动作事件 if(e.getSource()==osaveItem ||e.getSource()==saveItem){ //判断触发源是否是提交保存按钮 result = fileChooser.showSaveDialog(this.frame); //显示保存文件框 }else{ if(file!=null){ try{ PrintStream out = new PrintStream( //实例化打印流对象 new FileOutputStream(file)); out.print(this.jta.getText()); //输出全部内容 out.close(); //关闭输出流 lastzishu=jta.getText().length(); //得到文本长度 ischange=true; }catch(Exception ex){ //文件保存失败 //do nothing } } HL.setTitle(file.getName()+" - 记事本"); //更改HL窗口标题
} if(result==JFileChooser.APPROVE_OPTION){ //判断是否选择的是保存 file = fileChooser.getSelectedFile(); //选择要保存的文件 if(file!=null){ try{ PrintStream out = new PrintStream( //实例化打印流对象 new FileOutputStream(file)); out.print(this.jta.getText()); //输出全部内容 out.close(); //关闭输出流 lastzishu=jta.getText().length(); //得到文本长度 ischange=true; }catch(Exception ex){ //文件保存失败 //do nothing } } HL.setTitle(file.getName()+" - 记事本"); //更改HL窗口标题
} }else if(e.getSource()==openItem){ if(ischange||HL.getTitle().equals("无标题 - 记事本")&&zishu==0){ this.jta.setText(""); //清空文本中的原有内容 fileChooser.setApproveButtonText("确定"); //定义确定按钮信息 fileChooser.setDialogTitle("打开文件"); //设置文件选择框标题 result = fileChooser.showOpenDialog(this.HL);//显示打开对话框 if(result==JFileChooser.APPROVE_OPTION){ //表示选择了确定按钮 file = fileChooser.getSelectedFile(); //得到选择的File对象 }else if(result==JFileChooser.CANCEL_OPTION){ //表示选择了取消按钮 //do nothing }else{//result==JFileCHooser.ERROR_OPTION //出现错误 //do nothing } if(file!=null){ HL.setTitle(file.getName()+" - 记事本"); //更改HL窗口标题 try{ Scanner scan = new Scanner( new FileInputStream(file)); //设置输入流 scan.useDelimiter(" "); //设置换行分隔符 while(scan.hasNext()){ //循环读取 this.jta.append(scan.next()); //读取内容到文本区 } scan.close(); //关闭 lastzishu=jta.getText().length(); //得到文本长度 ischange=true; }catch(Exception ex){ //do nothing } } }else{ ispass=2; isSave.setVisible(true); //跳出isSave窗口 } } } |
运行结果:
课程总结:
老师以较快的速度讲解了JDBC,所以我只是大概了解,还需要按照课本加以网络的指导完成数据库的安装和基础使用操作。
常用SQL操作命令符
增insert删delete改update查select update 更新 alter 改变
创建数据库 create database 数据库; 查看指定数据库 show create database 数据库; 查看数据库(所有的) show databases; 修改数据库编码 alter database 数据库 default character set 新编码方式 collate 新编码方式_bin; 使用数据库 use db 删除数据库 drop database 数据库;(不能一次删除多个!)
创建表 create table 表名(列名 数据类型 [not null] [primary key],列名 数据类型 [not null],..) 查看所有表 show tables 查看一个表数据 select * from 表名 *代表所有列 也可以select 列名 from 表名 删除表 drop table 表名 更改表名 rename table 旧表名 to 新表名
增加表内容 插入数据 insert into 表名(列名,列名...)values(值,值...) 修改列中的一条记录 update 表名 set 列=值 where 列=值 删除列中的一条记录 delete from 表名 where 列=值
增加一个列 Alter table 表名 add 列名 数据类型 删除一个列 Alter table 表名 drop column 列名 修改一个列名 Alter table 表名 change 列名 新列名 数据类型;
desc 降序排列 asc 升序排列
delete 删除记录 结构依然存在 即还可以找到 执行后有提交过程 drop 结构和数据都删除 一步操作完成 |
MySQL基本数据类型
|
|
|
|