简单记事本的实现
源代码
package 记事本; import javax.swing.*; import java.awt.event.*; import java.io.*; public class TextPad implements ActionListener{ JFrame frame; JMenuBar bar; JMenu fileMenu,editMenu; JMenuItem newItem,openItem,saveItem,closeItem; ImageIcon newIcon,openIcon,saveIcon,closeIcon; JTextArea text; JScrollPane scroll; JFileChooser jfc; File file; public TextPad(){ frame=new JFrame("LJ"); bar=new JMenuBar(); fileMenu=new JMenu("文件"); editMenu=new JMenu("编辑"); newItem=new JMenuItem("新建",newIcon); openItem=new JMenuItem("打开",openIcon); saveItem=new JMenuItem("保存",saveIcon); closeItem=new JMenuItem("关闭",closeIcon); newIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"new.gif"); openIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"open.gif"); saveIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"save.gif"); closeIcon=new ImageIcon("f:"+File.separator+"java"+File.separator+"close.gif"); text=new JTextArea(); scroll=new JScrollPane(text); newItem.setMnemonic('N'); openItem.setMnemonic('O'); saveItem.setMnemonic('S'); closeItem.setMnemonic('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('S',java.awt.Event.CTRL_MASK)); closeItem.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK)); fileMenu.add(newItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.add(closeItem); newItem.setIcon(newIcon); openItem.setIcon(openIcon); saveItem.setIcon(saveIcon); closeItem.setIcon(closeIcon); bar.add(fileMenu); bar.add(editMenu); text.setEditable(true); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent arg0) { System.exit(1); }}); this.newItem.addActionListener(this); this.openItem.addActionListener(this); this.saveItem.addActionListener(this); this.closeItem.addActionListener(this); frame.add(scroll); frame.setJMenuBar(bar); frame.setVisible(true); frame.setSize(300, 300); frame.setLocation(300, 200); } public void actionPerformed(ActionEvent e) { Object obj = e.getSource(); if(obj instanceof JMenuItem) { JMenuItem item = (JMenuItem)obj; if(item==newItem) { new TextPad(); } else if(item==openItem) { jfc=new JFileChooser(); jfc.showOpenDialog(null); file=jfc.getSelectedFile(); try { FileInputStream fis=new FileInputStream(file); byte b[]=new byte[fis.available()]; fis.read(b); text.append(new String(b)); fis.close(); }catch(FileNotFoundException e1) { e1.printStackTrace(); }catch(IOException e1) { e1.printStackTrace(); } } else if(item==saveItem) { jfc=new JFileChooser(); jfc.showSaveDialog(null); file=jfc.getSelectedFile(); if(!file.exists()) { try { file.createNewFile(); }catch(IOException e2) { e2.printStackTrace(); } try { FileOutputStream fis=new FileOutputStream(file); byte[] b=text.getText().getBytes(); try { fis.write(b); fis.close(); }catch(IOException e3) { e3.printStackTrace(); } } catch(FileNotFoundException e3) { e3.printStackTrace(); } } } else if(item==closeItem) { System.exit(1);; } } } }
运行截图
总结:本次题目是上周学习的知识,包含上上周学习的窗体、文本域、滚动条等,上周的新知识有菜单JMenuBar组件、JMenu组件等以用来实现记事本的模板完成。此题让我的一个收获是明白了滚动条加在窗体中时,需要在加入文本域之后加,不然滚动条在文本域中显示不出来。
学习总结
JDBC:提供一种与平台无关的用于执行SQL语句的标准Java Apl,可以方便的实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成。
JDBC驱动分类:JDBC-ODBC桥驱动: 程序—————>JDBC——————>ODBC———————>数据库 用来进行数据连接操作,但是性能比较低。、
JDBC本地驱动: 程序——————>JDBC——————>数据库 只应用在特定的数据库上,会丧失掉程序的可移植性,但是性能较高。
JDBC的主要操作类及接口
MySQL数据库
一个小型关系型数据库管理系统,开发者为MySQL AB公司。课本上有他的安装及配置。
常用命令:连接MySQL数据库:
mysql-u用户名 -p密码
创建和删除数据库:
创建:CREATE DATABASE 数据库名称
删除:DROP DATABASE 数据库名称
使用数据库
USE 数据库名称
创建数据库表
CREATE TABLE表名称{
字段名称1 字段类型【DEFAULT 默认值】【约束】
字段名称2 字段类型【DEFAULT 默认值】【约束】
。。。。
字段名称3 字段类型【DEFAULT 默认值】【约束】
}
删除数据库表
DROP TABLE 表名称
查看表结构
DESC 表名称
查看数据库信息
查看全部数据库: SHOW DATABASES;
查看一个数据库的全部表:SHOW TABLES;
连接数据库
加载驱动程序
连接及关闭数据库
Connection接口,所有数据库的操作都从此接口开始。
连接数据库
总结:本周学习的数据库,第一次接触的东西,听大三学长说数据库对我们以后要学习的东西很重要,作业很大。刚刚开始听的时候真的有点抽象,抽象的东西搬来搬去,也不知道搬什么,后面仔细品读书本后,在脑海中能有点模糊的构想。继续研读课本吧。