第十四周总结
上周我们已经学习了许多关于记事本的相关内容,JMenuBar,JMenu,JMenuItem之间一环扣一环,菜单项JMenuItem加到菜单JMenu中,JMenu加到菜单容器JMenuBar中,
JMenuBar加到窗体JFrame中 frame.setJMenuBar(jmb),再在窗体中和文件菜单中加入相关组件和事件监听就形成了基本的记事本了
简单记事本代码
package 记事本;
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.PrintStream;
import javax.swing.*;
public class Jishi implements ActionListener {
JFrame f;
JMenuBar bar;
JMenu fileMenu, editMenu;
JMenuItem newItem, openItem, lsaveItem, closeItem, saveItem;
JScrollPane cro;
JTextArea area;
JFileChooser chooser;
File file;
JLabel label;
//构造方法
public Jishi() {
//定义对象
f = new JFrame();
bar = new JMenuBar();
fileMenu = new JMenu("文件");
editMenu = new JMenu("编辑");
area = new JTextArea();
cro = new JScrollPane(area);
JLabel label = new JLabel();
//菜单文件扩展类容
newItem = new JMenuItem("新建(n)");
openItem = new JMenuItem("打开(d)");
lsaveItem = new JMenuItem("另存为(c)");
closeItem = new JMenuItem("关闭(k)");
saveItem = new JMenuItem("保存");
//在组件中加入事件监听
newItem.addActionListener(this);
openItem.addActionListener(this);
lsaveItem.addActionListener(this);
closeItem.addActionListener(this);
saveItem.addActionListener(this);
//在菜单文件中加入类容
fileMenu.add(newItem);
fileMenu.addSeparator();
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(lsaveItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
fileMenu.addSeparator();
fileMenu.add(saveItem);
//快捷键设置
newItem.setMnemonic(KeyEvent.VK_N);
newItem.setAccelerator(KeyStroke.getKeyStroke('N', java.awt.Event.CTRL_MASK));
openItem.setMnemonic(KeyEvent.VK_D);
openItem.setAccelerator(KeyStroke.getKeyStroke('D', java.awt.Event.CTRL_MASK));
lsaveItem.setMnemonic(KeyEvent.VK_C);
lsaveItem.setAccelerator(KeyStroke.getKeyStroke('C', java.awt.Event.CTRL_MASK));
closeItem.setMnemonic(KeyEvent.VK_K);
closeItem.setAccelerator(KeyStroke.getKeyStroke('K', java.awt.Event.CTRL_MASK));
saveItem.setMnemonic(KeyEvent.VK_S);
saveItem.setAccelerator(KeyStroke.getKeyStroke('S', java.awt.Event.CTRL_MASK));
bar.add(fileMenu);
bar.add(editMenu);
f.setJMenuBar(bar);
f.add(cro);
f.setSize(400, 300);
f.setVisible(true);
}
@Override
//事件监听处理
public void actionPerformed(ActionEvent event) {
Object obj = event.getSource();
if (obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem) obj; //菜单事件监听处理实例化
if (item == newItem) { //新建事件处理
new Jishi();
} else if (item == openItem) { //打开文件处理
chooser = new JFileChooser();
chooser.showOpenDialog(null);
file = chooser.getSelectedFile();
FileInputStream fis;
try {
fis = new FileInputStream(file);
byte[] b = new byte[fis.available()];
fis.read(b);
area.append(new String(b));
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if (item == saveItem) { //保存文件事件处理
chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
if (file != null) {
try {
PrintStream out = new PrintStream(new FileOutputStream(file));
out.print(this.area.getText());
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
} else if (item == lsaveItem) { // 另存为事件处理
chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
try {
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
byte[] b = area.getText().getBytes();
fos.write(b);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} else if (item == closeItem) { //关闭文件事件处理
System.exit(1);
}
}
}
};
package 记事本;
public class text {
public static void main(String[] args) {
new Jishi();
}
}
除了记事本我们还学习了java数据库的编程
JDBC的概述
主要操作类及接口
序号 | 类及接口 | 描述 |
---|---|---|
1 | java.sql.DriverManager | 用于管理JDBC驱动 |
2 | java.sql.Connection | 用于建立与特定数据库连接 |
3 | java.sql.ResultSet | 用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问 |
4 | java.sql.Date | 该类是标准java.util.Date的一个子集,用于表示日期 |
5 | java.sql.CallableStatement | 用于执行SQL存储过程 |
6 | java.sql.Driver | 定义一个数据库驱动程序的接口 |
7 | java.sql.Time | 该类是标准java.util.Date的一个子集,用来表示具体时间 |
MySQL数据库
命令
数据库连接
mysql -u用户名 -p密码
数据库创建
创建数据库 CREATE DATABASE 数据库名称;
数据库删除 DROP DATABASE 数据库名称;
使用数据库
USE 数据库名称;
创建数据库表
CREATE TABLE{
字段名称1 字段类型 [DEFAULT 默认值][约束]
字段名称2 字段类型 [DEFAULT 默认值][约束],
...,
字段名称n 字段类型 [DEFAULT 默认值][约束],
删除数据库表 DELETE FROM 表名称
更新 UPDATE 表名称
查询 SELECT{*lcolumn alias} FROM 表名称
配置MySQL数据库的驱动程序
package org.lxh.demo17.connectdemo;
pubilc class ConnectionDemo1{
//定义加载驱动程序
public static final String DBDR="org.gjt.mm.mysql.Driver";
pubilc static void main(String args){
try{
class.forName(DBDRIVER);
}catch(ClassNotFountException e){
e.printStackTrace();
}
}
}