在网页中插入视频:
<embed src="http://player.youku.com/player.php/Type/Folder/Fid/4152375/Ob/1/Pt/0/sid/XMTQ5MDk0NzI4/v.swf" quality="high" width="960" height="800" align="middle" allowScriptAccess="allways" mode="transparent" type="application/x-shockwave-flash"></embed>
||||||||||||||||||||||居正的java学习笔记|||||||||||||||||||||||||||||||||
快捷键:
在选择代码时--
Ctrl+Shift+(大键盘)/ -注释
Ctrl+Shift+(大键盘)\ -取消注释
Integer.parseInt(s);//读字符串s里的Int参数
continue 进入下一次循环
equals("") 指定到String变量比较equals
Object 父类
abstract 抽象
final 终极对象,无法重写
注意:常量名大写NAME
String[] sz=s.split(" "); //建一个sz字符串数组,读取字符串s,中间用空格做不同数组的分界
toString() 内存地址
new XX(); 匿名对象
extends 继承
instanceof 比较左边的对象是否是右边对象的实例
return 返回
default 默认方法
interface 定义接口
implements 让子类继承接口
关键字:transient//作用是忽略,把这行代码给屏蔽掉,外界调用不了
transient float chengji=0;
float=12.5f//必须float加f,不然会报错
=============异常===========
Exception 异常
throws 抛异常
try{
//异常代码
}
catch(Exception e){
//错误时执行
}finally{//作用是善后,最终都会执行
}
==========集合类============
finally 异常的出口,finally始终会被在try..catch后执行
ArrayList 一个集合类 集合类 —— size();取当前大小 remove(0);删除 add(0,xs1);添加
LinkedList --倒序集合类
Vector --集合类
Stack --集合类
HashMap --特殊的集合类 if(hh.containsKey("001")){ }
=======图形化用户界面============
JFrame: aa.setTitle("用户界面");
aa.setVisible(true);//显示窗体;
JButton an1=new JButton("一个按钮");
aa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时关闭整个进程
aa.setSize(350,180);//窗体大小
aa.setLocation(100,260);//设置窗体位置
**this.setLayout(new FlowLayout);//添加流式布局管理器
this.setResizable(false);//是否允许拉窗口(允许true,不允许false,默认true)
this.setIconImage((new
ImageIcon("image/qq.jpg").getImage()));//设置此窗口图标为image/qq.jpg
++++++布局管理器+++++
-----BorderLayout边界布局管理----
EAST东 WEST西 SOUTH南 NORTH北 CENTER中 //this.add(an1,BorderLayout.EAST);
-----FlowLayout流式布局管理器----
this.setLayout(new FlowLayout(FlowLayout.LEFT));//向左边对齐
----GridLayout网格布局管理器-----
this.setLayout(new GridLayout(3,3,20,30));//(水平格子,垂直格子,水平间隙,垂直间隙)
----JPanel面板-----
new 对象:JPanel mb1=new JPanel();
mb1.add(an1);//添加一个an1的按钮组件
++++++组件++++++
JTable bg1;//表
JButton an1;//按钮
JPanel mb1;//面板
JLabel bq1=new("我是一个标签");//标签
JTextField wbk=new(/*长度*/);//文本框(编辑框)
JPasswordField mmk=new(/*长度*/);//密码框
JCheckBox fxk=new("体育");//复选按钮
JRadioButton dx=new("男");//单选按钮
ButtonGroup dxz=new ButtonGroup();//按钮组
JComboBox xlk=new(<String[]>);//下拉列表框
JFileChooser wjxz=new();//通用对话框(305行)
JList lb=new(<String[]>);//列表条的组件
lb.setVisibleRowCount(3);//设置滚动条一行显示3个
JScrollPane gd=new(<列表条组件>);//滚动条
bq=new JLabel(new ImageIcon("image/img.jpg"));//在标签里插入图片
cf=new
JSplitPane(JSplitPane.HORIZONTAL_SPLIT,/*拆分的东西1*/,/*拆分的东西2*/);//把界面拆分成左右两个
↑VERTICAL_SPLIT是上下两个
cf.setOneTouchExpandable(true);//允许加入折叠(收缩)小箭头
JTextArea wby=new JTextArea();//文本域
JTabbedPane xxk=new JTabbedPane()//选项卡
bq.setFont
(new Font("宋体"/*字体*/,Font.PLAIN,16/*字号*/));//设置字体
bq.setForeground(Color.BLUE);//设置字体颜色为蓝色
bq.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//设置鼠标到连接上显示手型
bq=new JLabel("<html><a href='www.qq.com'>申请密码保护</a>");//为这个文本加入www.qq.com链接网址
mb.setBackground(Color.BLUE);//设置面板填充颜色为蓝色
xxk.add("普通用户",mb2);//为选项卡添加一个“普通用户”文本,并引入面板2组件
||-----------------||
import java.awt.event.*;//引入【菜单】包 || 小知识 ||
JMenuBar cd;//菜单面板 ||"Bar"单词是"条"、||
JMenu cd1;//菜单 || "组"的意思,如 ||
JMenuItem cdx2;//菜单项 || MenuBar(菜单条) ||
/*JMenuItem是最终的,不可以再有下一级菜单 || JToolBar(工具条)||
JMenu不是最终的,点击以后不是应用效果,而是下一级菜单*/ ||-----------------||
JToolBar gjt;//工具条
an.setToolTipText("粘贴");//但鼠标放在按钮上时弹出气泡提示框
cd.setMnemonic('F');//cd的菜单快捷键是Art+'F'
cdx=new JMenuItem("打开",new ImageIcon("image/dk.png"));//在菜单前面附上dk.png的图片
cd1.addSeparator();//在菜单1后面加一条分割线
this.setJMenuBar(cd);//设置窗口菜单
===================线程===================
++++++++++++++创建线程的两种方法++++++++++
class Xc extends Tread{}
class Xc implements Runnable{}
++++++++++线程的具体方法+++++++++++
public void run(){}//run方法是改写的父类方法(重写)
xc.start();//谁调用了这个方法,就会去自动调用run(以多线程的方式)
Thread.currentThread().getName()//显示当前线程名称
xc.setName("线程");//设置线程名称
xc1.setPriority(Thread.NORM_PRIORITY+3/*默认级别是5[+3变成8],数字越大优先级越高*/);//设置线程1的优先级
Thread.sleep(1000/*1000是毫秒=1秒(停止的时间)*/);//线程的睡眠方法
【必须用try..catch处理异常】
Thread.yield();//这个线程不执行(让步)
dd.join();//阻塞:将当前的线程暂停,直到调用join函数所对应的线程执行完毕,才执行后面的程序
##让一个语句在线程中完全执行完,再切换CPU
String aa=new String("1");//先定义一个字符串,随意定义
synchronized(aa ){/*绝对执行完的语句*/}&public synchronized void run();
[线程类]this.wait();//停止这个线程
this.notify();//叫醒另一个线程。是在当前线程处于就绪状态的情形,才去叫醒
具体:
package l_6;
public class L6_8 {
public static void main(String[] args){
Xc8 xc81=new Xc8();
Thread ee=new Thread(xc81);
ee.start();
Thread ff=new Thread(xc81);
ff.start();
}
}
class Xc8 implements Runnable{
public static int chepiao=100;
String aa=new String("1");
public void run(){
while(true){
synchronized(aa){
if(chepiao>0){
new println
("第"+Thread.currentThread().getName()+
"个车站正在卖第"+(101-chepiao)+"张票");
--chepiao;
}else{
break;
}
}
}
}
}
=======================================================
========================IO流====================
String[] sz=s.split(" ");//用字符做间隔来群定数组元素,拆分字符串
注意:IO流close时要用Buffered清缓存flush()
流必须用throws Exception抛异常
read input 输入流 write output 输出流
read write字符流 input output字节流
【流】FileReader wj=new FileReader("E:/java/Test.java");//文件流-字符流
aa=wj.read();//读取一个字符(返回一个文件字符)|读取文件号得使用int读取|
while(aa!=(-1)){
new print((char)aa);//不加ln换行,必须强行转换为char(字符)
aa=wj.read();
}
//读取循环的参考代码
wj.close();//必备代码——关闭打开的文件
[wj]运行结果:类似于将一个文本文件输出内容
【流】FileInputStream wj=new FileInputStream("E:/java/Test.java");
//文件流-字节流,凡是中文的地方出现乱码
【流】FileWriter zt=new FileWrite("e:/cc.wav");//文件流-写出流
【流】FileInputStream;//文件流-字节流-读入流
【流】FileOutputStream;//文件流-字节流-写出流
zt.flush();//将流中残留内容全部输出
zt.write(aa);//指定操作的文件号为aa
int aa;
aa=fz.read();
while(aa!=(-1)){
zt.write(aa);
aa=fz.read();
}
//复制文件参考代码
【流】BufferedOutputStream hczt=new BufferedOutputStream(new
FileOutputStream("e:/flash/jjp.avi"));//输入流-缓冲流
【流】BufferedOutputStream;//输出流-缓冲流
【关键字】byte[] hc=new byte[2048/*一次性缓冲的大小*/];//定义字节
int ff=hcfz.read(hc);//读缓冲的字节
while(ff!=(-1)){
hczt.write(hc,0/*从0开始读*/,ff);//为了防止最后一次写入数据长度与缓冲区不同
ff=hcfz.read(hc);
}
【流】ByteArrayOutputStream=new();//字节数组流-输出
【流】DataOutputStream=new(/*这里放一个字节数组流*/);//数据输出流
long aa=123456789;//创建变量赋值
数据输出流.writeLong(aa);//接受aa
-------
【流】ByteArrayInputStream=new();//字节数组流-输入
【流】DataInputStream=new(/*这里放一个字节数组流*/);//数据输入流
byte[] zjsz=字节数组流-输出.toByteArray();//读入
long ss=数据输入流.readLong();
【流】PrintStream=new(FileOutputStream("f:/1.txt"));//print流,这是print字符串
thiss.println(12345);//输出12345到f:\1.txt
System.setOut(PrintStream);//定义输出的方式(默认输出到屏幕)
System.setErr(PrintStream);//定义错误的输出方式(默认输出到屏幕)
【输出方法】System.err.println("输入有误");//err是输出错误
【流】ObjectIn/OutputStream osr=new(wsc);//用Object的方法写出一个文件(加密写入)
osr.writeObject(ss);//ss为学生类,写出ss到创建File流时制定的一个文件
【接口】Serializable//接口是空的,实现标志作用
ss2=(Student)osr.readObject();//ss2是一个学生类,使用Object的方法破密读入
关键字:transient//作用是忽略,把这行代码给屏蔽掉,外界调用不了
transient float chengji=0;
【流】File wj=new File("e:/aa.txt");//文件路径流
wj.exists();//检测文件是否存在
wj.getAbsolutePath();//取文件路径
wj.canRead();//文件是否可读
wj.canWrite();//文件是否可写
wjj.isDirectory();//文件夹是否存在
wjj.mkdir();//创建文件夹
wjj.listFiles();//取文件夹下的所有文件,为数组类型
列出此目录下的所有文件
File xianshi[]=wjj.listFiles();//(显示文件)
for(int i=0;i<xianshi.length;i++){
new println("文件名字:"+xianshi[i].getName());//输出名字
}
===================绘图技术和事件处理=====================
class Wdmb extends JPanel{
public void paint(/*绘图控制对象*/Graphics g){//paint是JPanel的方法,这里必须重写为自己的东西(paint=画笔)
g.drawOval(50, 60, 80, 80);//画描边椭圆-(纵向坐标,横向坐标,横长,纵长)-坐标点为左上
g.drawLine(100, 100, 300, 200);//画直线-(起点纵向坐标,起点横向坐标,终点纵向坐标,终点横向坐标)
g.drawRect(100, 100, 50, 60);//画描边矩形-(纵向坐标,横向坐标,横长,纵长)-坐标点为左上
g.draw3DRect(100, 100, 50, 60, true/*真=往外凸,假=往里凹*/);//3D描边矩形
g.setColor(Color.red);//设置填充颜色(为青色),默认颜色是黑色
g.fillRect(100, 100, 100, 100);//填充型矩形
g.setColor(Color.yellow);//设置填充颜色(为黄色)
g.fillOval(220,100,80,80);//填充型圆形
g.fill3DRect(100,100,100,100,true);//填充型3D矩形
}//fill是填充 Line是直线 Rect是矩形 Oval是圆形 Color是颜色
}//自己定义“我的面板”类
Image
tp=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/javapt.jpg"));//设置绘制src目录下的javapt.jpg文件(这是基本格式)
g.setFont(new Font("华文彩云",Font.BOLD,50));//设置字体(字库里的字体,Font.字体样式,大小)
g.drawString("你好!",200,100);//画String(String变量,纵坐标,横坐标);
==============事件监听============
import java.awt.event.*;//事件监听需要导入的包
JFileChooser wjxz=new();//通用对话框(305行)
++++++++++++鼠标事件++++++++++++
extends JFrame implements ActionListener{}//监听必须使用接口ActionListener
public void actionPerformed(ActionEvent
e){}//实现方法actionPerformed,传入参数ActionEvent e
an1.addActionListener(this);//为按钮1添加监听,this是使用此类的监听方法为按钮1起作用
an1.setActionCommand("111");//按钮1的名称为111
ActionCommand为名称字符串 addActionListener为添加监听 ActionEvent为监听传入组件的变量
if(e.getActionCommand().equals("111")){//如果按下的按钮名称为111↓
ss.setBackground(Color.red);//那么将ss面板的填充颜色设置为red红色
}else{
ss.setBackground(Color.blue);
}
+++++++++++键盘事件+++++++++++
class Wdmb implements KeyListener{}//使用接口KeyListener
public void keyReleased(KeyEvent e){}//键盘事件必须实现的方法(按键抬起时做的操作)
public void keyPressed(KeyEvent e){}//按下键盘后的操作(键盘事件必须实现的方法)
public void keyTyped(KeyEvent e){}//有字符输出的函数(键盘事件必须实现的方法)
this.addKeyListener(mb);//在主方法里添加Wdmb里的键盘事件
(char)e.getKeyCode();//取按下的键数(强转为字符)
e.getKeyChar();//取按下的键值直接是char类型的
if(e.getKeyCode()==KeyEvent.VK_DOWN){}
getKeyCode()是取按下的减值 KeyEvent.VK_DOWN是键盘数值里的"↓"方向键
this.repaint();//重新运行paint函数
++++++++++鼠标事件+++++++++
class Wdmb implements MouseListener{}//使用这个接口
public void mouseClicked(MouseEvent e){}//鼠标被单击的事件(鼠标事件必须实现的方法)
public void mouseReleased(MouseEvent e){}//鼠标被松开事件(鼠标事件必须实现的方法)
public void mousePressed(MouseEvent e){}//鼠标被按下事件(鼠标事件必须实现的方法)
public void mouseEntered(MouseEvent e){}//鼠标被移动到界面里(鼠标事件必须实现的方法)
public void mouseExited(MouseEvent e){}//鼠标离开界面(鼠标事件必须实现的方法)
class Wdmb implements MouseMotionListener{}//鼠标移动和拖拽接口
public void mouseDragged(MouseEvent e){}//鼠标拖拽的事件(鼠标事件必须实现的方法)
public void mouseMoved(MouseEvent e){}//鼠标被移动的事件(鼠标事件必须实现的方法)
+++++++++窗口事件++++++++++++
class Wdmb implements WindowListener{}//使用WindowListener接口
public void windowOpened(WindowEvent e){}//窗口被打开的事件(窗口事件必须实现的方法)
public void windowClosing(WindowEvent e){}//窗口被普通关闭事件(窗口事件必须实现的方法)
public void windowClosed(WindowEvent e){}//窗口被特殊关闭事件(窗口事件必须实现的方法)[没用]
public void windowIconfied(WindowEvent e){}//窗口最小化的事件(窗口事件必须实现的方法)
public void windowDeiconified(WindowEvent e){}//窗口从最小化变成正常事件(窗口事件必须实现的方法)
public void windowActivated(WindowEvent e){}//窗口被激活事件(窗口事件必须实现的方法))
============在java中添加声音================
import javax.sound.sampled.*;//需要导入的包
具体代码:
File wjl = new File(wjm);
AudioInputStream ypsrl = null;
try {
ypsrl = AudioSystem.getAudioInputStream(wjl);
} catch (Exception e){}
AudioFormat format = ypsrl.getFormat();
SourceDataLine aqsj = null;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
try {
aqsj = (SourceDataLine) AudioSystem.getLine(info);
aqsj.open(format);
} catch (Exception e){}
aqsj.start();
int zjtj = 0;
byte[] hczj = new byte[1024];
try {
while (zjtj != -1) {
zjtj = ypsrl.read(hczj, 0, hczj.length);
if (zjtj >= 0)
aqsj.write(hczj, 0, zjtj );
}
} catch (Exception e){}
finally {
aqsj.drain();//将残留部分处理干净
aqsj.close();
}
调用时:
Shengyin sy=new Shengyin("./tank.wav");//要调用的文件
sy.start();
++++++++++实例——记事本+++++++++++++
JFileChooser wjxz=new();//通用对话框
wjxz.setDialogTitle("打开一个文本文档");//设置通用对话框名字
wjxz.showOpenDialog(null);//弹出一个打开类型的对话框,且显示文件夹图标或内容是用java默认的方式
wjxz.setVisible(true);//设置可见为真
String wjlj=wjxz.getSelectedFile().getAbsolutePath();//将用户选择的全路径复制给wjlj
wby.setText(zfc);//设置文本域的文本
具体读文件代码:
wjl=new FileReader(wjlj);
hcl=new BufferedReader(wjl);
String s="",zfc="";
while((s=hcl.readLine())!=null){
zfc+=(s+"\n");
}
wby.setText(zfc);
wjxz.showSaveDialog(null);//弹出保存类型通用对话框对话框
具体代码:
PrintStream pl=new PrintStream(bclj);//创建print流,print输出到bclj这个文件位置路径
System.setOut(pl);//设置默认输出方式
new println(this.wby.getText());输出this里的文本域(wby)里的Text内容
================SQL_server 2005数据库==================
! ! ! sql不区分大小写
数据表的类型-int,
nvarchar(50)--输入中文很好的字符串类型,允许50的字
nchar(1)--1字符
numeric(6,2)--小数变量numeric(位数,其中的小数位数)
+++++++++++SQL命令行+++++++++++
create database abcd//建立数据库
--是注释的意思(等同于//)
create database shuguo新建一个叫shuguo的数据库(语法:新建 数据库database 名称)
create table renwu(
bianhao int,
xingming nvarchar(50),
xingbie nchar(1),
zhiwu nvarchar(10),
nianling int
)--在选定的数据库里建立renwu表,有一些字段,结尾用逗号隔开(等同于;)
drop table renwu--删除整个表table是renwu表
select * from renwu--查询*所有,来自from renwu这个表
select bianhao from renwu--查询列出编号
select bianhao,gongzi from renwu--查询bianhao和gongzi
select bianhao 编号,gongzi 工资 from renwu --设置别名的代码
select * from renwu where gongzi>5000--查询工资大于5000的人
insert into renwu values(5,'刘备','男','主公',1000)--添加 在 renwu表 数据(......)//添加数据
insert into renwu (bianhao,xingming,xingbie,zhiwu)
values(2,'甘夫人','女','老婆')--按括号里的东西添加数据
delete from renwu--仅仅删除表的数据
delete from renwu where bianhao=2--删除 在 renwu表 条件是 bianhao==2//删除一条记录
update renwu set gongzi=gongzi*1.02 where gongzi<1000--更改记录,条件是工资小于1000
create table gsyg(
bianhao int primary key,--键值约束,主键
xingming nvarchar(10),
nianling int,
)
where nianling is null--如果年龄是空的
and--和
or--或
bianhao int foreign key references bumen(bianhao),--和部门表的编号同步
select distinct bianhao from renwu--在任务表查询编号,把重复的给删掉
select xingming'姓名',gongzi*12+isnull(buzhu,0)*12'年总收入' from renwu
isnull--是否为空,如果是空的,用'0'代替
模糊查询:
select xingming'姓名' from renwu where xingming
like'居%'--like——好像,百分号后面是省略的字,多少个字都行
一个字:'_'
无限字符:'%'
select xingming,paihang from renwu where paihang
in(101,105,108,114)//in--查询的多条件,等同于and
select xingming,gongzi from renwu order by gongzi//order排序 by 查询判断的项目
select xingming,gongzi from renwu order by gongzi desc//降序是desc排序
select sum(gongzi)'总工资',avg(gongzi)'平均' from renwu//sum是总和,avg是平均,max最高,min最低
select xingming,gongzi from renwu where gongzi=(select max(gongzi) from
renwu)//求最大值的工资
backup database abcd to disk='f:/abcd.bak'//备份数据库
restore database abcd from disk='f:/abcd.bak'//还原数据库
//database是数据库的意思,同样可以create database XXX
=============java链接数据库===============
import java.sql.*;//必须导入的类
Connection ct=null;
Statement sum=null;//创建的类
PreparedStatement ps=null;//补全漏洞:PS
**ResultSet rs;//执行代码的类
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:odbc:juzheng"/*juzheng是数据源名称*/,"sa"/*账号*/,"20020228"/*密码*/);
sm=ct.createStatement();
}//运行的驱动(必须的格式)
---------查询--------------
try{
ResultSet rs=sm.executeQuery("select * from renwu");//在java中执行数据库的代码(链接)
while(rs.next()/*rs的往下查询(如果有下一跳记录)*/){
int bianhao=rs.getInt(1);
String mingcheng=rs.getString(2);//字符串接受名字,在rs(数据库)里的第二列
String didian=rs.getString(3);
new println(bianhao+" "+mingcheng+" "+didian);
}//逐个读出
}
-----------添加--------
try{
int i/*返回的值是几条受影响*/=sm.executeUpdate("insert into bumen
values('8','ss','aaa')");//添加的代码
if(i==1){
new println("成功");
}else{
new println("失败");
}//成败判断
}
------------补全漏洞-------------
ps=ct.prepareStatement("insert into bumen values(?,?,?)");//使用PS添加的东西用问号代替
ps.setInt(1,7);/*Int数值类型的第一列,数值填入7*/ ps.setString(2, "侦查"); ps.setString(3,
"山外");//在下面一个一个用set填进去
rs=ps.executeQuery();//传递过去执行
===================简易学生管理系统===============
JTable=new JTable(jilu,ziduan);//先是记录,后是字段
++++++++++++++++查询+++++++++++++++++++++++
import java.sql.*;
import java.util.*;
import javax.swing.table.*;//要引入的包
String xingming=this.wbk1.getText().trim();//把文本框的东西取出来
bg1.setModel(xsxx2);//设置表的内容
public class Xsxx extends AbstractTableModel{//这个是查询的类
Vector ziduan,jilu;
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
public int getRowCount(){//继承需要覆盖的方法
return this.jilu.size();
}
public int getColumnCount(){
return this.ziduan.size();
}
public Object getValueAt(int hang,int lie){
return ((Vector)this.jilu.get(hang)).get(lie);
}
public Xsxx(){
this.sqlyj("select * from xuesheng");
}
public Xsxx(String ss){
this.sqlyj(ss);
}
public String getColumnName(int e){
return (String)this.ziduan.get(e);
}
public void sqlyj(String sql){
ziduan=new Vector();
ziduan.add("学号");
ziduan.add("姓名");
ziduan.add("性别");
ziduan.add("年龄");
ziduan.add("籍贯");
ziduan.add("所在院系");
jilu=new Vector();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:odbc:juzheng","sa","20020228");
ps=ct.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Vector hang=new Vector();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getInt(4));
hang.add(rs.getString(5));
hang.add(rs.getString(6));
jilu.add(hang);
}
}catch(Exception e){
System.err.println("SQLserver脑子有点抽筋-_-: "+e.toString());
}
finally{
try{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(ct!=null){
ct.close();
}
}catch(Exception e){}
}
}
}
//在主方法:
String xingming=this.wbk1.getText().trim();
String xingming2=xingming;
if(xingming.indexOf("'")!=-1){
xingming2=xingming.replace("'", "");
}
String sql="select * from xuesheng where xingming='"+xingming2+"'";
Xsxx xsxx2=new Xsxx(sql);
bg1.setModel(xsxx2);
System.out.println("select");
++++++++++++++++++++++添加++++++++++++++++++++++++++++++++++++++++
//所有代码:
import javax.swing.JDialog.*;//这是要继承的类,意思是在当前窗口中新建一个子窗口
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
public class Tianjia extends JDialog implements ActionListener{
JLabel bq1,bq2,bq3,bq4,bq5,bq6;
JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6;
JButton an1,an2;
JPanel mb1,mb2,mb3,mb4,mb5,mb6,mb7;
public Tianjia(Frame fck,String ckm,Boolean msck){
super(fck,ckm,msck);
bq1=new JLabel("学号");
bq2=new JLabel("姓名");
bq3=new JLabel("性别");
bq4=new JLabel("年龄");
bq5=new JLabel("籍贯");
bq6=new JLabel("院系");
wbk1=new JTextField(10);
wbk2=new JTextField(10);
wbk3=new JTextField(10);
wbk4=new JTextField(10);
wbk5=new JTextField(10);
wbk6=new JTextField(10);
an1=new JButton("确定");
an2=new JButton("取消");
an1.addActionListener(this);
an1.setActionCommand("tianjia2");
an2.addActionListener(this);
an2.setActionCommand("quxiao");
mb1=new JPanel();
mb2=new JPanel();
mb3=new JPanel();
mb4=new JPanel();
mb5=new JPanel();
mb6=new JPanel();
mb7=new JPanel();
mb1.add(bq1);mb1.add(wbk1);
mb2.add(bq2);mb2.add(wbk2);
mb3.add(bq3);mb3.add(wbk3);
mb4.add(bq4);mb4.add(wbk4);
mb5.add(bq5);mb5.add(wbk5);
mb6.add(bq6);mb6.add(wbk6);
mb7.add(an1);mb7.add(an2);
this.setLayout(new GridLayout(7,0));
this.add(mb1);this.add(mb2);
this.add(mb3);this.add(mb4);
this.add(mb5);this.add(mb6);this.add(mb7);
this.setSize(370,270);
this.setLocation(500,500);
this.setResizable(false);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("tianjia2")){
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:odbc:juzheng","sa","20020228");
String ss=("insert into xuesheng values(?,?,?,?,?,?)");
ps=ct.prepareStatement(ss);
ps.setString(1, wbk1.getText());
ps.setString(2, wbk2.getText());
ps.setString(3, wbk3.getText());
ps.setString(4, wbk4.getText());
ps.setString(5, wbk5.getText());
ps.setString(6, wbk6.getText());
ps.executeUpdate();
this.dispose();//将当前子窗口关闭
}catch(Exception er){System.out.println(er.toString());}
finally{
try{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(ct!=null){
ct.close();
}
}catch(Exception er2){
}
}
}else if(e.getActionCommand().equals("quxiao")){
this.dispose();//如果取消,直接将窗口关闭
}
}
}