已阅读5页,还剩158页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一周(0723-0729)20120724(周二):(JAVA窗体皮肤的使用)Java设计好看的窗体必加的代码(使用内置皮肤控件):把以下代码加到主函数里面:tryfor (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels() if (Nimbus.equals(info.getName() javax.swing.UIManager.setLookAndFeel(info.getClassName(); break; catch (Exception e) e.printStackTrace();或者UIManager.setLookAndFeel(com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel);使用代码示例(注意设置皮肤的代码一定要放在窗体的实例化之前!否则会有一些went。):package com;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.UIManager;public class Clientpublic static void main(String args) throws ExceptionUIManager.setLookAndFeel(com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel);/换肤的代码一定要写在窗体实例化之前JFrame main=new JFrame();main.setBounds(300, 100, 300, 200);JButton button=new JButton();button.setBounds(80, 50, 100, 60);button.setText(皮肤实例);main.setLayout(null);main.add(button);main.setVisible(true);一些皮肤插件集合20120725(周三):MyEclipse使用技巧小总结:1、 自动提示:窗口-首选项-Java-编辑器-内容辅助-自动激活,在下面的“Java的自动激活触发器里面填上“.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”。2、 加快自动提示的时间:窗口-首选项-Java-编辑器-内容辅助-自动激活,将下面的自动激活延迟数值改低一些,如20。3、 自动缩进和对齐:默认快捷键是CTRL+Shift+F,但是很多人应该会发现很多时候这个快捷键没用,原因就是因为它和搜狗输入法的“简繁转换快捷键”冲突了,解决办法是:修改搜狗的快捷键,扳手菜单-设置属性-快捷键,将“简繁转换快捷键”禁用或修改为其它。4、 添加、取消注释:CTRL+/,第一次按添加,再按一次取消。5、 自动添加set和get方法:右键-源代码-生成Getter和Setter。6、 自动添加注释代码:Alt+Shift+J,如给方法添加注释,只需将光标停在方法的任意处然后按快捷键Alt+Shift+J即可。7、 自动生成构造方法:右键-源代码-使用字段生成构造方法。8、 自动让大括号从第二行开始:窗口-首选项-Java-代码样式-格式化程序,在右边新建一个模板,在花括号栏中将花括号位置全部设为下一行。9、 让按空格直接缩进一个Tab:窗口-首选项-Java-代码样式-格式化程序,在右边新建一个模板,在缩进中将跳格策略设为“全部”。10、 让try catch、if else、do while、try finally语句在新的一行开始:窗口-首选项-Java-代码样式-格式化程序,在右边新建一个模板,选择“控制语句”一栏,将“常规”部分全部勾选上。札记:l 子类必须用super调用父类的某一个构造方法,我们平时没写不会报错,是因为程序已经隐式的调用了那个无参的,如果给父类写一个有参的构造方法,那么子类的构造方法也必须调用那个有参的,因为父类无参的构成方法如果不手动重写的话会被覆盖,多个构造方法也是一样。l 最好不要将多个类写在一个文件中。l 类的属性为public时类名必须与文件名相同,不指定时可以不同,但不建议这样用。l private属性只能本类访问,public无限制,protected可以被本类、子类、同包类访问(这一点与c#不同,c#只能被本类、子类访问),缺省(即不写)可以被同包类访问。l c#中static方法只能被类直接访问,类的对象(即实例化后的类)不能访问,而Java中则都可以(运行虽没有错,但是Eclipse会有警告)。第二周(0730-0805)20120730(周一):1、 super其实就一个作用:那就是调用父类被隐藏或没被隐藏的方法或属性,可以是构造方法,也可以是普通方法2、 this就是调用当前类的属性或方法。3、 StringBuffer比String性能高很多,如果需要频繁更改字符串的值,推荐使用StringBuffer。4、 StringBuffer和StringBilder差不多,但前者是多线程安全的,后者则不安全,所以还是推荐使用前者。5、 比较字符串,建议不管什么时候都用String.equals()方法。20120731(周二):今天主要讲IO流。1、 字符串转字符数组:String str=abc;char b=str.toCharArray();2、 字符或字节数组转字符串:char b=new chara,b,c;String str=new String(b);3、 FileInputStream输入流,FileOutputStream输出流。4、 FileReader和FileWriter的用法FileReader fr=new FileReader(abc.txt);BufferedReader br=new BufferedReader(fr);fr和br哪个先关哪个后关无所谓,都不会出错,但是建议先将br关掉,再关掉fr.但是对于:FileWriter fw=new FileWriter(efg.txt);BufferedWriter bw=new BufferedWriter(fw);必须先关掉bw,再关掉fw,反过来就会出错。写入时追加:FileWriter fw=new FileWriter(new File(abc.txt),true);/ture表示追加内容,而不是覆盖序列化:Serializable作用:将对象直接保存到文件,使用非常方便,无需管其是如何存储的。方法:类必须实现Serializable的接口写入:FileOutputStream fw=new FileOutputStream(序列化.txt);ObjectOutputStream oos=new ObjectOutputStream(fw);oos.writeObject(student);oos.close();fw.close();System.out.println(使用序列化保存对象成功!);读取:ObjectInputStream ois=new ObjectInputStream(fi);list=(ArrayList)ois.readObject();Properties配置文件:20120801(周三,SQL):l 常见的数据库:Oracle,MSSqlServer、MySql、DB2、Sybase、Access、SqlLitel 一个数据库:可以放多张表,一张表可以放多(行)条数据记录表:行的集合,列的集合SQL2005数据库的配置: 1、启动“配置工具”-“SQL SERVER Configuration Manager” 点击“MSSQLSERVER的协议”,将TCP/IP和“Named Pipes”启动 点击“SQL Server 2005服务”启动服务,(服务名称:SQL SERVER(MSSQLSERVER))启动“SQL2005”企业管理器登录身份验证方式有两种: 1、Windows身份验证(只要能够登录操作就可以直接登录数据库系统,不需要密码) 2、SQL Server身份验证(使用SQL数据库系统中的用户进行登录,必须使用密码)数据库文件:mdf是主要数据库文件,ldf是事务日志文件,ndf是次要数据库文件(要手动添加创建)班级表:Class:ClassID表名:表名id 主键,自增列(标识列)检查约束:常用的数据类型:int,nvarchar,datetime,money,bit,numeric(18, 0),textvarchar和char区别: varchar是可变长度,是可以根据列的内容进行改变数据长度的数据类型(中英文数字) char是固定长度,当内容长度不足时,会在内容后面添加空格来弥补varchar(10)=nvarchar(5)char(2)=nchar(1)添加数据: insert into 表名(列名.) values(对应列的值) 添加时列名要一一对应值,列数和值数要一致 除了数字以外,其他数据类型都要加单引号,值与值之间用逗号隔开更新数据: update 表名 set 列名=值 where 条件删除数据: delete from 表名 where 条件查询语法: select 列名 from 表名 where 条件 order by 列表 asc|desc group by 列名 having 分组后的条件系统函数: 数据类型转换:Convert(数据类型,值):convert (varchar,13)聚和函数: SUM:求和 AVG:求平均 Count:求记录数 Max:求最大值 Min:求最小值内联接查询:两张表必须都存在,才能查询出数据外联:左外、右外、全外20120802(周四,Oracle数据库的连接)关于statement.Execute()方法:execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet 或 getUpdateCount 来获取结果,使用 getMoreResults 来移动后续结果。 参数: sql - 任何 SQL 语句 返回: 如果第一个结果为 ResultSet 对象,则返回 true;如果其为更新计数或者不存在任何结果,则返回 false.所以建议不要使用execute语句来执行SQL语句。2012年8月3日(周五,还是数据库)最基本的Oracle数据库连接代码(只针对Oracle11g):1、 右键项目-构建路径-配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:Oracleapporacleproduct11.2.0server jdbclibojdbc6_g.jar”(注:D:Oracle为数据库的安装路径)。2、 以下代码为非常标准的Oracle数据库连接代码示例:/* * 一个非常标准的连接Oracle数据库的示例代码 */public void testOracle() Connection con = null;/ 创建一个数据库连接 PreparedStatement pre = null;/ 创建预编译语句对象,一般都是用这个而不用Statement ResultSet result = null;/ 创建一个结果集对象 try Class.forName(oracle.jdbc.driver.OracleDriver);/ 加载Oracle驱动程序 System.out.println(开始尝试连接数据库!); String url = jdbc:oracle:thin::1521:XE;/ 是本机地址,XE是精简版Oracle的默认数据库名 String user = system;/ 用户名,系统默认的账户名 String password = 147;/ 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password);/ 获取连接 System.out.println(连接成功!); String sql = select * from student where name=?;/ 预编译语句,“?”代表参数 pre = con.prepareStatement(sql);/ 实例化预编译语句 pre.setString(1, ydcun);/ 设置参数,前面的1表示参数的索引,而不是表中列名的索引 result = pre.executeQuery();/ 执行查询,注意括号中不需要再加参数 while (result.next() / 当结果集不为空时 System.out.println(学号: + result.getInt(id) + 姓名: + result.getString(name); catch (Exception e) e.printStackTrace(); finally try / 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源 / 注意关闭的顺序,最后使用的最先关闭 if (result != null) result.close(); if (pre != null) pre.close(); if (con != null) con.close(); System.out.println(数据库连接已关闭!); catch (Exception e) e.printStackTrace(); l resultSet.getString()等方法一般有2个重载方法,一个是列名索引(注意是从开始),一个是列名,推荐使用后者,因为方便代码的可读性。l PreparedStatement对象会将SQL语句预先编译,这样将会获得比Statement对象更高的执行效率。故推荐使用PreparedStatement。方 法 原 型说 明void setX(int parameterIndex, X x)throws SQLException将parameterIndex指定的“?”位置指定为x的值,这里X可以指代任意数据类型, “?”的索引从1开始。关于驱动程序:l 使用JDBC-ODBC桥方式连接数据库,其性能完全取决于数据源(ODBC)的性能,并且无法脱离Microsoft的平台,这样将带来不便;所以一般还是要纯Java驱动方式连接数据库。纯Java驱动程序连接Oracle数据库示例: 使用纯Java驱动连接到Oracle 9i数据库,加载驱动程序应改成如下语句:Class.forName(oracle.jdbc.driver.OracleDriver); 连接字符串应如下格式:jdbc:oracle:thin:服务名或IP:1521:数据库名 如:Connection con = DriverManager.getConnection(jdbc:oracle:thin::1521:test, scott, tiger); 第三周(0806-0812)20120806(周一,GUI)Java对话框的显示:JOptionPane.showConfirmDialog(null, 这是一个对话框!,提示:, JOptionPane.YES_NO_OPTION);或者:JOptionPane.showMessageDialog(this, 这是一个对话框!, 注意, JOptionPane.OK_OPTION);带输入的对话框:String name = JOptionPane.showInputDialog(this, 您得了 + score+ 分,请输入您的大名, 保存成绩, JOptionPane.OK_CANCEL_OPTION);使用Split函数的注意事项:1、如果用“.”作为分隔的话,必须是如下写法:String.split(.),这样才能正确的分隔开,不能用String.split(.);2、如果用“|”作为分隔的话,必须是如下写法:String.split(|),这样才能正确的分隔开,不能用String.split(|);“.”和“|”都是正则表达式中的关键字,必须得加进行转译;3、如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“a=1 andb =2 or c=3”,把三个都分隔出来,可以用String.split(and|or);20120807(周二,打方块游戏)Java游戏设计方法总结:一般游戏都是采用多线程画图的方法,所有画图的代码都写在paint事件里面(当然不一定也没必要全部直接)(和.Net类似),然后开辟一个新线程,如每隔30毫秒刷新一次,注意主窗体没有双缓存,而Java的控件一般都自带了双缓存功能,所以最好在主窗体上加一个面板,把所有画图的东西都画在面板上。Java中的相对路径:例如当前类名叫Test.java,位于:“项目文件夹srcmain”文件夹下,获取“项目文件夹srcimage”中的名为bg.png的图片:Test.class.getResource(./image/bg.png);/两个点“.”表示返回上一次路径Java读取一张图片:Image img=ImageIO.read(Test.class.getResource(./image/ +pictureName+.png);20120808(周三,记事本)Java获取系统字体库:1. GraphicsEnvironmentgEnv=GraphicsEnvironment.getLocalGraphicsEnvironment();2. Stringevnfonts=gEnv.getAvailableFontFamilyNames();3. for(inti=0;i首选项-Java-代码样式-代码模板-代码-方法主题-编辑:IO流的一些总结:IO即Input、Output亦即输入、输出流。主要分2种:字节输入输出、字符输入输出。1、 字节输入输出:祖宗:InputStream、OutputStream主要儿子:FileOutputStream、FileInputStream.2、 字符输入输出:祖宗:Reader、Writer主要儿子:InputStreamReader、InputStreamWriter(字节流通向字符流的桥梁)FileReader、FileWriter(文件字符输入输出流)BufferedReader、BufferedWriter(缓冲的,可以以行为单位读取数据)注意:Writer及其子类都有一个flush()方法,用来刷新当前输出流,并强制写入所有缓冲的字节数据。InputStreamReader的2种构造方法: public InputStreamReader(InputStreamin)创建一个使用默认字符集的 InputStreamReader。 public InputStreamReader(InputStreamin, StringcharsetName)创建使用指定字符集的 InputStreamReader。 参数: in - InputStream charsetName - 受支持的 charset 的名称 (默认GBK)20120812(周日):TCP实现服务端与客户端之间的多线程自由聊天、文件传送示例:服务端:package server;import java.io.FileOutputStream;import java.io.IOException;import .ServerSocket;import .Socket;import java.util.ArrayList;import java.util.Scanner;public class ServerServerSocket server = null;ArrayList sockets = new ArrayList();public Server() throws IOExceptionserver = new ServerSocket(5678);System.out.println(服务端已启动!);while (true)Socket socket = server.accept();sockets.add(socket);System.out.println(新增一台客户端与服务端连接!);/开辟新线程接收消息getMessage(socket);/开辟新线程发送消息,如果发送消息不用多线程的话,程序就会阻塞在这里,没办法接受新的客户端的连接了sendMessage(socket);/getFile(socket);public void getMessage(final Socket socket)Runnable runnable = new Runnable()Overridepublic void run()trywhile (true)byte b = new byte1024;int len = socket.getInputStream().read(b);String str = new String(b, 0, len);if(str.equals(exit)break;System.out.println(客户端说: + str);/for(Socket s:sockets) /实现简单的群聊功能/s.getOutputStream().write(客户端说:+str).getBytes();/socket.getOutputStream().write((服务端已收到!).getBytes();Thread.sleep(100);socket.close();System.out.println(连接已关闭!);catch (Exception e)e.printStackTrace();new Thread(runnable).start();public void sendMessage(final Socket socket)Runnable runnable = new Runnable()Overridepublic void run()tryScanner scanner=new Scanner(System.in);while (!socket.isClosed()System.out.println(请输入:);String input=scanner.next();socket.getOutputStream().write(input.getBytes();System.out.p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 17168-3:2025 EN Fine ceramics (advanced ceramics,advanced technical ceramics) - Test method for air-purification performance of semiconducting photocatalytic materials
- 【正版授权】 ISO 18298:2025 EN Railway applications - Platform barrier systems
- 印刷塑料袋合同范本
- 儿童寄宿合同协议书
- 村里占地修路协议书
- 出售树木双方协议书
- 医生备案劳务协议书
- 供暖业务委托协议书
- 出租门脸转让协议书
- 徐汇区事业单位2025招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025欧盟REACH法规高关注物质清单
- 施工现场安全材料管理试题及答案
- 《黄金集团》课件
- 设备保管方案
- 园林绿化工程施工安全隐患辨识及预控措施
- 医疗技术分级管理、审批制度及流程
- 中国武侠电影研究知到课后答案智慧树章节测试答案2025年春云南艺术学院
- 2025年河南机电职业学院单招职业技能测试题库及参考答案
- 火灾爆炸事故专项的应急预案
- 外国近现代雕塑艺术欣赏
- 大学美育(河南财经政法大学)知到智慧树章节测试课后答案2024年秋河南财经政法大学
评论
0/150
提交评论