javac 窗体跳转JButton点击事件无法跳转怎么解

【求助】 如何点击一个JButton后只关闭窗口但不退出程序【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:703,649贴子:
【求助】 如何点击一个JButton后只关闭窗口但不退出程序收藏
大概程序是这样的:...protected void confirmExit() {JFrame frame = new JFrame("Exit");final JLabel label = new JLabel("Are You Sure To Exit ?");JButton yesButton = new JButton("YES");yesButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {System.exit(0);}});frame.setLayout(new BorderLayout());frame.add("Center", label);frame.add("South", yesButton);frame.pack();frame.setSize(200, 400);frame.setVisible(true);}...如果我现在在frame里面加入一个JButton noButton = new JButton("NO");问一下如何能点击noButton之后自动执行关闭窗口的操作呀……noButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {
// 这里应该些什么呢 T.T}});谢!
价格10元一天10000公告招租___*喵*星*人*贴*吧*助*手*
求助攻呀!
frame隐藏掉
调用frame.dispose()释放掉frame
登录百度帐号JavaJava 基础简介java 简介:具有面向对象、与平台无关、安全、稳定和多线程等特点。 分布式、健壮性、安全性、可移植性 。 文档后缀:Java 源文件 && Java 字节码 && .java .class程序运行原理:java 虚拟机,JVM 能过虑掉所有病毒。Java 虚拟机 Java 源文件 (.Java) Java 编译器 字节码 (.class) Java 解释器 CPU命名规范包的命名:必须由小写单词组成。前缀:com , edu , gov , mil , net , org 命名法:帕斯卡 && 单词首字母大写 GetAge 骆驼命名法 && 第一个单词首字母小写,其余单词首字母大写 getAge 匈牙利命名法 && 以下划线开头,都小写 _age 类的命名:使用帕斯卡命名法 && ShowBook 接口的命名:同类的命名,只是开头加个 I && IShowBook变量:必须由 字母、数字、下划线 组成, 不能以数字开头,也尽量不要用下划开头。 标识符:必须由 字母、数字、下划线 或 ‘$’ 符号组成, 不能以数字开头。数据类型1、原始数据类型数据类型 byte char boolean short int long float double 名称 字节型 字符型 布尔型 短整型 整型 长整型 浮点型 双精度2、引用数据类型大小(位) 8 16 1 16 32 64 32 64 -128 ~ 127 ~ ~ \ uFFFF 32767 ~
~ 4775807 ~ 1.31570E + ~ 3.E + 38 \ u 范围true / flase --.E + 38-1.31570E + 308 308语句的使用? for 语句的使用:位于 for 循环中作为计数器值的数字常量, 除了-1、0 和 1 之外,不应被直接写入代码 【break:跳出本层循环】 【continue: 跳出本次循环】 语法: for( i & 5 ; i++ ){ //内容 } while 语句的使用: 语法: while(条件){? //内容【条件为真时执行】 } 或 do{ //内容【至少执行一次】 }while(条件); 【分号不能少】 ? 三元运算符:条件为真时,答案为第一个结果,否则为第二个结果。 语法: 条件 ? 结果 1 :结果 2 2&1 ? 对 : 错 ?switch 语句的使用: 语法: switch(条件){【条件可为 整型、字符型】 case 1: 内容【需要写,结束】 case 2: 内容 default: 内容【可不写】 }逻辑用词符号! & && | || 非 按位与 与 按位或 或名称指相反的说明不管左边条件真假,右边都执行 当左边条件为假时,右边不执行 不管左边为真假,右边都执行 当左边条件为真时,右边不执行结果一假则假 一真则真类型转换1、自动类型转换条件:两种类型必须兼容,目标类型大于源类型 int num1=5 ; float num2=num1 ; 兼容图:char Byte short int float long double2、强制类型转换: float num2=1.2 ; int num1=num2 ; // 将浮点型强制转换为整型 运算符1、算数运算符 2、赋值运算符 3、关系运算符 4、逻辑运算符? 算数运算符+ * / % ++ --Java 的算数运算符【必须是数值类型】 名称加 减 乘 除 取模 递增 递减例子a+b a-b a*b a/b a%b a++ 或 ++a a-- 或 --a? 关系运算符= = != & & &= &=Java 的关系运算符【不在两个浮点数之间比较】 名称等于 不等于 大于 小于 大于等于 小于等于 检查值的不等性 比较两个数的大小 比较两个数的大小 检查左边的值是否大于等于右边的值 检查左边的值是否小于等于右边的值说明检查两个数的相等性? 【三元运算符,查看语句的使用】 ? 【逻辑运算符,查看逻辑用词】 ? 优先级1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. = ,+=Java 的运算符的优先级 运算符()名称括号 后缀运算符 一元运算符 乘,除,取模 加,减 移位运算符 关系运算符 等于,不等于 按位与 按位异或 按位或 逻辑与 逻辑或 条件运算符 (算术) 赋值运算符[ ] , . ! , ~ ,++ , -- ,(一元运算符,取负数) * , / ,% + ,&& ,&& , &&& & ,& ,&= ,&= ,instanceof = = , != & ^ | && || ?: ,- = ,*= , /= , %=数组的使用定义: 【访问数组,下标从 0 开始,array[0] 】 1. int array[] = new int[5]; 2. int[] array = new int[5]; // 推荐 3. int[] array = {1,2,3,4,5}; // 初始化值 Java 程序的输入输出输入: 1、导入 java.util.S // 导入包 2、程序写: Scanner m= new Scanner(System.in); // 引用实例 System.out.println(&提示语句&); String num= m.next(): // 接收字符串值 说明: 【 nextInt 为整型值 其余同理】 输出: 1、System.out.println(&输出语句&); 2、格式化输出: float n=12.56; System.out.println(&%8.2f&,n); 说明: 8.2 表示总共 8 位,带 2 位小数。 【 超过长度自动截取小数点后面的数,不够补 0 】Eclipse 快捷键运行: Ctrl + F11 感应: Alt + / 注释: Ctrl + 7 Ctrl + / 多行注释: Ctrl + Alt + J 外侧代码: Alt + Shift + Z 外侧方法: Alt + Shift + S 查看快捷键: Ctrl + Shift + L先选中要添加的代码(if,for,do,while,try 等) 类和对象类: a. 构造对象的模板或蓝图,是一个集合的概念 b. 类实际上是对某种类型的对象定义属性和方法的原型 c. 类是对象的模板【具有相同属性和相同方法】 对象: 对象是一些相关变量的方法的软件集修饰符public 公有的,任何地方都能访问 一个源文件中只能有一个被 public 修饰的类,并且是用来放 main 函数 私有的,只能在类的内部直接访问privatefriendly 缺省的【同包友好】 protected 受保护的【同包友好,父子友好】类的定义[ 修饰符 ] class 类名 [ extends 父类名 ] [ implements 界面名 ] { // 类主体【注意类的命名】 } 说明: 带 [ ] 的可选public class Yin {// 方法} 对象的创建语法: 类名 对象名= new 类名(); 访问属性和方法: 对象名 . 属性 对象名 . 方法 注意: 如果构造方法调用失败,那么对象也无法创建。 如果类没有构造方法, 系统会为其创建一个隐式的构造方法。方法的定义[ 修饰符 ] 返回类型 方法名(形参表) [ throws 异常 ] {// 方法体【注意类的命名】 } 说明:构造方法无返回值,构造方法必须与类名同名public static void main(String[] args) {// 方法体【静态方法,程序入口main】 【静态方法不能重写,但能被继承】} Public Yin(){// 构造方法} public String myYin(String[] args) {// 方法体} OOP 思想 封装定义: 将所有的成员变量通通私有化( ptivate ),是为了确保数据的安全性。 步骤: 1. 修改属性的访问权限来限制对属性的访问 2. 为每个属性创建一个,get 方法和 set 方法 3. 在赋值和取值方法中加入对属性的存取限制继承定义:现有类去派生新类的过程Parent class 现有:基类,超类,父类 Child class 新类:子类,派生类语法: Class 子类 extends 父类{ // 属性+方法 // 还有父类的属性+方法【构造方法除外】} 继承特性:单一性,单方向,有关系 多态1、静态多态 2、动态多态? 静态多态: 【方法重载】 方法重载:为了方便类的调用者,引入方法的重载 方法重载,将一组具有相同功能的代码存放在一起 1、方法名相同 2、参数列表必须不同 3、必须在同一作用域【与返回值无关】 ? 动态多态: 【方法重写】 定义:相同的代码,但结果不同,同一函数,多种形态。 注意:必须要有继承关系,方法重写,引用转型 方法重写:父类的方法不好,在子类中重写一个覆盖父类的方法 1、方法名相同 2、参数列表必须完全相同 3、必须在同一作用域 关键字 static 关键字定义:静态的,修饰成员变量和成员方法。 【静态方法不能重写,但能被继承】 1、具有全局变量的生命周期,局部变量的作用域。 2、静态成员变量对本类中的所有成员共享。 3、静态成员变量无值时,系统赋值为 0。 ? 在非静态方法中访问非静态成员变量有 3 中方式 1、This.num=20; //通过 this 访问 2、num=10; //直接访问 3、One obj = new One(); //通过对象访问 obj.num=20; 在非静态方法中访问静态成员变量有 4 中方式 1、This.num=20; //通过 this 访问 2、num=10; //直接访问 3、One obj = new One(); //通过对象访问 obj.num=20; 4、One.num=20; //通过类名访问 在静态方法中访问非静态成员变量有 1 中方式 1、One obj = new One(); //通过对象访问 obj.num=20; 在静态方法中访问静态成员变量有 3 中方式 1、One.num=20; //通过类名访问 2、num=10; //直接访问 3、One obj = new One(); //通过对象访问 obj.num=20;??? this 关键字【this 关键字指自己,super 关键字指父类】 this 可为已调用了其方法的那个对象生成相应的引用 new 谁的对象,this 就指向谁【要访问类的方法,先要创建类】 this 可以访问本类中的所有成员变量super 关键字【this 关键字指自己,super 关键字指父类】 1. 调用父类的构造方法 2. 调用父类的方法 3. 将参数传递给父类的构造方法【必须放在子类的第一条语句】final 关键字定义:代表最后的,不可更改的。 a. final 修饰变量,该变量变成常量,不能修改【常量必须大写】 b. final 修饰方法,该方法不能再重写 c. final 修饰类,该类不能被继承 抽象类和接口 抽象类和抽象方法1. 2. 3. 4. 抽象类可以包含非抽象方法,反之则不行。 抽象类不能实例化(new 对象) ,本质是用来继承的。 抽象类中可以包含抽象方法,但不一定要包含抽象方法。 抽象类强制子类的其抽象方法提供具体实现,如果子类不能对其实现,则子 类将成为抽象类。语法: abstract class ClassName{ //类的主体部分 public abstract void yin(); // 抽象方法 } 抽象方法: 某个方法不能具体实现,则定义为抽象方法 不能使用:final,static,private 抽象方法不含方法体,分号结束【观察抽象类】 接口1. 2. 3. 4. 5. 接口支持多重继承。 抽象类和接口都不能实例化。 接口不是类,没用构造方法。 接口方法都默认为抽象方法,没有实现部分。 接口的数据都默认为 public static abstract 类型的常量,必须初始化。接口的定义: [ public ] interace 接口名 [ extends 父接口名 ] { // 常量域声明 [ public ] [ static ] [ final ] 域类型 功能变量名称 = 常量值; // 抽象方法声明[ public ] [ abstract ] [native ] 返回值 方法名( 参数列表) [ throw 异常列表 ] ;} 接口的实现: Class 类名 implements 接口名 1 , 接口名 2 { // 实现方法 } 异常异常:程序出现不正常的情况 1、编译错误 2、运行错误 3、逻辑错误执行异常? Java.lang.ArrayStoreException 试图将错误类型的对象存储到一个对象数组时,抛出 ? Java.lang.ArithmeticException 算术异常,当出现异常的运算条件时,抛出 ? Java.lang.ClassCastException 试图将对象强制转换为不是实例的子类时,抛出 ? Java.lang.IllArgumentException 向方法传递不合法的参数时,抛出 ? Java.lang.NullPointerException 空值异常,当应用程序试图在需要对象的地方使用 null 时,抛出 ? Java.lang.ArrayIndexOutOfBoundsException 数组越界异常,当数组下标大于或等于其长度时,抛出 ? Java.lang.StringIndexOutOfBoundsException 字符串异常,指示索引为负或者超出字符串大小时,抛出检查异常? Java.io.EOFException 当输入过程中意外到达档或流的末尾时,抛出 ? Java.io.FileNotFoundException 当试图打开指定路径名表示的档失败时,抛出 ? Java.lang.CloneNotSupportedException 向方法传递不合法的参数时抛出 ? Java.lang.IllegaAccessException 当前正在执行的方法无法访问指定类,字段,方法或构造方法的定义 时,抛出 ? Java.lang.InterruptedException 当线程在很长一段时间内一直处于正在等待,休眠或暂停状态,而 一个线程用 Thread 类中的 iterrupt() 方法中断它时,抛出 自定义异常class 异常名 extends Excepion { public 异常名(String str){ super(str); } } 【方法名后面加 throws 抛异常】处理程序异常Try{ // 捕捉异常 }catch( 异常类型 1 异常对象名 1){ // 处理异常 }catch( 异常类型 2 异常对象名 2){ // 处理异常 }finally{ // 关闭【可不写,无论是否有异常都执行】 } try && catch && finally 使用 1. try ... Finally 2. try ... catch() ... finally 3. try ... catch() 集合框架优点: 1.长度可省略,无下标越界 2.可以存放不同数据类型 3.可以灵活的进行增删改查(CRUD) 注意:当查询情况比较多时,用 ArrayList 当删除、插入多时,用 LinkedList ArrayList LinkedList Vector HashMap数据域 + 指针域 线程同步 键对值 【无序集合】ArrayListArrarList 类继承了 AbstractList 类,实现了 List 界面 常用方法 方法 size() add() set() get() remove() clear() isEmpty indexOf() 方法描述 容量,长度 增 改 查 删 清空 判断是否为空 根据元素搜索下标 LinkedList Vector HashMap Lang 包和 Util 包的使用 原始引用及包装的转换包装类:原始数据类型转换为引用类型,为包装类。 byte: 不能直接使用 new 字符串转为包装类:字符串.valeeof() 字符串转为原始类型:原始类型的包装类.parse 包装类 【注意:boolean、 character 没有静态的 valeeof()方法】 例: 对应原始类型 转换代码int float Integer.parseInt() Float.parseFloat()原始类型转为引用类型参考表 原始类型char int引用类型Character Integer其他的首字母全部大写Character 类定义:所有方法都是静态方法,使用:类名.静态方法() 静态方法Character.isLetter('s') Character.isDigit('2') Character.isUpperCase('S') Character.isLowerCase('s') Character.isWhitespace(' ')方法描述判断是否为 字母 判断是否为 数字 判断是否为 大写字母 判断是否为 小写字母 判断是否为 空格 String 类定义:String 类具有不变性,操作副本,不改变本身。 字符串转为字符数组:char []ch=字符串名.toCharArray() ; 字符串转为二进制:byte []名=字符串名.getBytes() ; 使用:String str=&aa&; str.charAt(0); 常用方法charAt(0) indexOf('d'); length() equals(&dd&) equalsIgnoreCase(&dD&) lastIndexOf('s') startsWith(&dd&) startsWith(&dd&, 1) endsWith(&dd&) trim() concat(&dddd&) compareTo(&ddd&) substring(1) substring(1,3) 根据下标找字符 根据字符找下标 获取字符串长度 比较两个字符串内容是否相同 = = 比较引用地址 忽略大小写比较 从后往前搜下标 判断是否以 &dd& 开头 判断 &dd& 的下标是否为 1 判断是否以 &dd& 结尾 截取空格 连接字符串 比较大小 从下标为 1 开始截取整个字符串 截取 1 -- 3 位置的字符串,不包括 3方法描述StringBuffer 类StringBuffer sb=new StringBuffer(&abcde&); 常用方法insert(1, &dd&) setCharAt(1, 'd') replace(1, 3, &sss&) reverse() toString() 替换单个字符 替换 1 到 3 位置的字符 反转,倒置 转为字符串方法描述根据下标插入字符串 Math 类定义:该类被修饰为 final,并且它中间所有方法都是静态方法。 静态方法Math.abs(-23.3) Math.round(13.5) Math.max(3.3, 4.4) Math.min(3.3, 4.4) Math.floor(2.33) Math.ceil(3.3) Math.sqrt(4) Math.pow(2, 3) Math.random() 绝对值 四舍五入 最大值 最小值 返回比参数小的最小整数,2 返回比参数大的最小整数,4 开方 求幂,2 的 3 次方 随机 [ 0 ,1) 之间的数方法描述Object 类1. 2. 3. 4. 5. 6. 它是所有类的最高父类 它的引用可以指向任何类的实例(引用转型) 任何一个类的实例都可以看成 object Object 类中的方法都会自动继承到其他类中(除构造方法) 地址散列码:加密处理 打印对象名时,系统默认调用 toString()方法Class 类a. getClass() 获得类的类描述信息 b. getSuperClass() 获得父类的类描述信息 c. forName() 加载驱动程序(连接数据库使用)Date 类Date d=new Date(); Long l=d.getTime(); //获取
到至今的毫秒数 Calendar 类Calendar cc=Calendar.getInstance(); //获取实例 具体参考 api 或 jdkRandom 随机类Random r=new Random(); int i=r.nextInt(); // 随机整数 double d=r.nextDouble(); // 随机小数IO 包和 SQL 包的使用 IO 包档操作:File file=new File(&text.txt&); file.exists(); //判断档或目录是否存在 file.isFile(); //判断是否是档 file.isDirectory(); //判断是否是目录 file.getName(); //获取档或目录的名字 file.getPath(); //获取档或目录的路径 file.getAbsolutePath(); //获取档或目录的绝对路径 file.lastModified(); //获取档或目录的最后修改日期 file.length(); //获取档或目录的大小,单位为字节 字节流写入档:public void imports() { try { String str=&abcdfghijklmn&; //通过文件名创建档输出流对象 FileOutputStream fos= new FileOutputStream(&test.txt&); byte[] buffer=str.getBytes();//将字符串转化为字节数组 fos.write(buffer);//将字节数组写入档 fos.close(); //关闭流 } catch (IOException e) { //异常处理 } }读取档:public Vector sequence(){ try { File f = new File(&Test.txt&); //创建档对象 FileInputStream fis=new FileInputStream(file); //根据档的字节长度创建字节数组 Byte[] buf=new byte[(int)(f.length())]; fis.read(buf); //读取档中的数据存放到位元组数组中 String str=new String(buf); //利用字节数组创建字符串 fis.close(); //关闭 } catch (FileNotFoundException e) { System.out.println(&档打开失败。&); } catch (IOException e) {} } 字符流写入档:public void imports(Vector ve) { File f = new File(&Test.txt&); try { FileWriter wr = new FileWriter(f); BufferedWriter bw = new BufferedWriter(wr); for (int i = 0; i & ve.size(); i++) { bw.write(ve.get(i).toString()); bw.newLine();//换一行 } bw.close(); //关闭 wr.close(); } catch (IOException e) { e.printStackTrace(); } }读取档:public Vector sequence(){ Vector v = new Vector(); S File f = new File(&Test.txt&); try { FileReader fr = new FileReader(f); BufferedReader br = new BufferedReader(fr); while ((str = br.readLine())!=null) { v.add(str); } br.close(); //关闭 fr.close(); } catch (FileNotFoundException e) { } catch (IOException e) {} // 返回导出数据 } 剪切功能public class Yin { public static void main(String[] args) { File file=new File(&F:\\J2EE5.chm&); File fs=new File(&F:\\dd.chm&); try{ FileInputStream fk=new FileInputStream(file); FileOutputStream mm=new FileOutputStream(fs); System.out.println(&档正在截取――――!&); //字节流 byte[] buf = new byte[(int)(file.length())]; fk.read(buf); mm.write(buf); //打印出档的路径 System.out.println(file.getAbsoluteFile()); //file.delete(); fk.close(); //必须先把流关闭掉,才能把档删除,实施剪切功能 System.out.println(file.delete()); System.out.println(&剪切完成!&); mm.close(); }catch(FileNotFoundException f){ System.out.println(&找不到档!&); }catch(IOException k){ k.getStackTrace(); } } } 复制public class Yin { public static void main(String[] args) { File file=new File(&F:\\test.txt&); File fm=new File(&F:\\dd.txt&); try{ FileInputStream fi=new FileInputStream(file); FileOutputStream fs=new FileOutputStream(fm); System.out.println(&开始复制!&); byte buf[]=new byte[(int)file.length()]; fi.read(buf); String str=new String(buf); fs.write(buf); System.out.println(str); System.out.println(&复制完成!&); fi.close(); fs.close(); }catch(IOException i){ System.out.println(&找不到档&); i.getStackTrace(); } } } 复制并改名/* * 运行下程序请注意: * 程序是将 E:盘中的一个帮助文档 copy 到 F: 盘中;并重命名为 dd. */ public class Yin { public static void main(String[] args) { File fi=new File(&E:\\文档\\jdk150.ZH_cn.chm&); File fs=new File(&F:\\dd.chm&); try{ FileInputStream fil=new FileInputStream(fi); FileOutputStream fle=new FileOutputStream(fs); System.out.println(&开始copy...&); byte[] buf = new byte[(int)(fi.length())]; fil.read(buf); fle.write(buf); System.out.println(&copy完成!&); fil.close(); fle.close(); }catch(FileNotFoundException e){ e.getStackTrace(); }catch(IOException k){ k.getStackTrace(); } } } SQL 包DML:数据操作语句 DDL:数据查询语句 JAVA 连接数据库: 操作数据库 表的 CRUD 操作 1. 2. 3. 4. 5. 6./*建立数据源(桥梁的作用) 加载驱动查询(类似说明书) 建立连接对象【注意异常】 创建语句对象 执行 SQL 语句 关闭连接* 连接数据库代码 */public class DBUtil { private String DRIVER=&com.microsoft.sqlserver.jdbc.SQLServerDriver&; private String URL=&jdbc:sqlserver://127.0.0.1:1433; databaseName=computer&; Connection con=public Connection getConnection(){ try { Class.forName(DRIVER);//加载驱动 //建立连接 con=java.sql.DriverManager.getConnection(URL,&sa&,&123&); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } //返回连接对象 } } Java Swing特效使用 常用表单控件表单 JTextField JButton Jcheckbox JRadioButton JcomboBox JpssswordField JTextAyea JButtonCroup 文本框 按钮 复选框 单选按钮 下拉列表 密码框 文本域 分组按钮 名称 命名chk 开头 rad 开头 cbo 开头菜单栏 1public class Test3 extends JFrame implements ActionListener{ JMenuBar mb=new JMenuBar(); JPopupMenu pm=new JPopupMenu(); JMenu m1=new JMenu(&档&); JMenu m2=new JMenu(&查看&); JMenu mi1=new JMenu(&保存(s)&); JMenuItem mi2=new JMenuItem(&另存为&); JMenuItem mi3=new JMenuItem(&退出&); JMenuItem mi4=new JMenuItem(&123&); /** * 构造方法 */ public Test3(){ // this.setTitle(&窗口&); this.setLocationRelativeTo(this); this.setResizable(true); this.setSize(400, 300); //界面宽度 this.add(mb,BorderLayout.NORTH); //添加菜单栏 mb.add(m1); //添加【档】菜单 m1.add(mi1); //档菜单添加【 保存】 下级菜单 m1.add(mi2); //档菜单添加 【另存为】 下级菜单 mi1.add(mi2); //保存菜单添加 【另存为】 触试菜单 mb.add(m2); //添加【查看】菜单 m2.add(mi3); //查看菜单添加【退出】下级菜单 m2.add(mi4);//查看菜单添加【123】下级菜单 mi3.addActionListener(this); mi1.setMnemonic('s'); //设置菜单快捷键 //设置快捷键为 Ctrl+D mi3.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_D,ActionEvent.CTRL_MASK) ); //添加事件 this.addMouseListener(new MouseAdapter(){ public void mouseReleased(MouseEvent e){ if (e.getButton()==3 && e.isPopupTrigger()) { pm.setLocation(e.getX(), e.getY()); pm.setVisible(true); } } }); mi2.addActionListener(this); this.setVisible(true); //显示界面 } public static void main(String[] args) { new Test3(); } public void actionPerformed(ActionEvent arg0) { JOptionPane.showMessageDialog(null, &保存成功&); } } 菜单栏 2public class Test3 extends JFrame implements ActionListener{ JMenuBar me=new JMenuBar(); jme1=new jme2=new jme3=new jme4=new JMenu jme5=new JMenu JMenu JMenu JMenu JMenu(&档(F)&); JMenu(&编辑(E)&); JMenu(&格式(O)&); JMenu(&查看(V)&); JMenu(&帮助(H)&);JMenu jm1=new JMenu(&工具&); JMenuItem fi1= new JMenuItem(&Open&); JMenuItem fi2= new JMenuItem(&帮助&); JTextArea txt1=new JTextArea(); JPopupMenu p1=new JPopupMenu(); JMenu pp1=new JMenu(&打开&); JMenu pp2=new JMenu(&复制&); JMenu pp3=new JMenu(&粘贴&); public Test3(){ this.setTitle(&菜单的应用&); this.setSize(400,300); this.setLocationRelativeTo(this); this.setDefaultCloseOperation(3);//可以关闭【不写为隐藏】 this.setResizable(false); txt1.setFont(new Font(&宋体&,1,23)); //为菜单设置访问键 jme1.setMnemonic('F'); jme2.setMnemonic('E'); jme3.setMnemonic('O'); jme4.setMnemonic('V'); jme5.setMnemonic('H'); jm1.add(fi2); jme1.add(fi1); jme1.addSeparator();// 分隔条 jme1.add(jm1); //设置快捷键 fi1.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_A,ActionEvent.CTRL_MASK)); p1.add(pp1);//弹出菜单 p1.addSeparator(); p1.add(pp2); p1.addSeparator(); p1.add(pp3); me.add(jme1); me.add(jme2); me.add(jme3); me.add(jme4); me.add(jme5); this.setJMenuBar(me); this.add(new JScrollPane(txt1)); fi2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { JOptionPane.showMessageDialog(null, &你好&); } }); txt1.addMouseListener(new MouseAdapter(){ //弹开时发生的事件 public void mouseReleased(MouseEvent e) { if(e.getButton()==3){ if(e.isPopupTrigger()){ p1.show(e.getComponent(),e.getX(),e.getY()); p1.setVisible(true); } } } }); } public static void main(String[] args) { new Test3().setVisible(true); } public void actionPerformed(ActionEvent arg0) { JInternalFrame frame= new JInternalFrame(&:&,false,true,true,true); } } 内部窗体public class Test3 extends JFrame{ JDesktopPane mainTopFrame=new JDesktopPane();//主 JMenuBar me=new JMenuBar(); JMenu jme1=new JMenu(&档&); JMenu jm1=new JMenu(&工具&); JMenuItem fi1= new JMenuItem(&Open&); int count=1; public Test3(){ this.setTitle(&菜单的应用&); this.setSize(400,300); this.setLocationRelativeTo(this); this.setDefaultCloseOperation(3); this.setResizable(false); jm1.add(fi1);jme1.add(jm1);me.add(jme1); this.setJMenuBar(me);//添加菜单栏 this.add(mainTopFrame);//添加面板 fi1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { JInternalFrame frame=new JInternalFrame (&子窗体&+count++,false,true,true,true); //创建具有指定标题、可调整、可关闭、 可最大化和(最小化)可图示化的 JInternalFrame。 JTextArea ts=new JTextArea(); //文本域 ts.setAutoscrolls(true); JScrollPane spane=new JScrollPane(ts);//面板 Container con=frame.getContentPane();//获得容器 con.add(spane); mainTopFrame.add(frame);//添加副窗体 frame.setSize(200,200); //副窗体大小 frame.setVisible(true); //显示副窗体 } }); } public static void main(String[] args) { new Test3().setVisible(true); } } 跳出子界面窗体之间的跳转问题: 1.ViewData vd = new ViewData(); //子窗体实例 vd.setVisible(true); this.dispose();2.DIYimbark.main(null); DIYimbark 子界面名弹出网页try { Runtime tr = Runtime.getRuntime(); String cmd = &cmd start/c F:/201 计算机销售系统/computer/技术论坛.htm&; tr.exec(cmd); } catch (IOException ie) { ie.printStackTrace(); }卡片布局导入: swing-layout-1.0.3.jar 【外接包】 构造方法 public Test1() { initComponents(); init(); //添加方法 } 构造方法下面写 init()方法 private void init() { this.jPanel2.setLayout(new CardLayout()); //做个卡片 Test3 t=new Test3(); this.jPanel2.add(&fgf&,t); } 按键方法里写: ((CardLayout) this.jPanel1.getLayout()).show(this.jPanel1, &fgf&); test3 里写: //本容器分层 GroupLayout group=new GroupLayout(this); this.setLayout(group); group.setHorizontalGroup(group.createParallelGroup(1).add(pa,-1,640,Short.MAX_VALUE)); group.setVerticalGroup(group.createParallelGroup(1).add(pa,-1,485,Short.MAX_VALUE)); //给本容器分层(2)[默认层次] GroupLayout gg=new GroupLayout(this); this.setLayout(gg); gg.setHorizontalGroup(gg.createParallelGroup(1).add(pa)); gg.setVerticalGroup(gg.createParallelGroup(1).add(pa));提示: 1. jPanel2 存放容器的容器名 2. Test1 为界面名 3. &fgf& 自己取名 4. Test3 为容器名 5. Test3 显示到 jPanel2 中 (网页模版) 6. org.jdesktop.layout.GroupLayout.LEADING=1 正整数即可 7. org.jdesktop.layout.GroupLayout.DEFAULT_SIZE=-1 8. 640 485 界面大小 可随便写 // // // // // // // // // 【此为上面代码的详细代码】 group.setHorizontalGroup(group.createParallelGroup( org.jdesktop.layout.GroupLayout.LEADING).add(pa, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 640, Short.MAX_VALUE)); group.setVerticalGroup(group.createParallelGroup( org.jdesktop.layout.GroupLayout.LEADING).add(pa, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE));【如有不懂之处参考项目】 控件应用 JTable 表格应用获得表格全部值Vector v=new Vector() jTable1.getRowCount() //行数 jTable1.getColumnCount() //列数 for(int i=0 ; i & jTable1.getRowCount() ; i ++){ for(int j=0 ; j & jTable1.getColumnCount() ; j++){ v.add(jTable1.getValueAt(i, j)); } }选中表格资料int num=jTable1.getSelectedRow(); int row =jTable1.getSelectedColumn(); // 返回 没选中(-1) (选中 0) (选中 1) (选中 1)// 返回 //返回没选中(-1) 没选中(0)int row =jTable1.getSelectedColumnCount(); int row =jTable1.getSelectedRowCount(); int[] row =jTable1.getSelectedRows();没选中(0) 没选中(0)(选中:选几条就返回几) (选中:根据条数返回下标) 获得选中表格内容的值//接收选择商品信息 int row =this.jTable1.getSelectedRow(); //判断是否选中商品 if (row == -1) { JOptionPane.showMessageDialog(this, &你还没有选中商品!&, &警告&,1); }else{ //选中时 //用于限制选择一条(选中几条就返回几条) int count =this.jTable1.getSelectedRowCount(); if(count&1){ JOptionPane.showMessageDialog(this, &一次只能选一种商品商品!&, &警告&,1); }else{ String strWare = this.jTable1.getValueAt(row, 0).toString(); //获得商品 String strMoney = this.jTable1.getValueAt(row, 1).toString(); //获得价格 } }多列滑动table=new JTable();//引用表格实例 JScrollPane jst=new JScrollPane(table);//可上下滑动 table.setRowHeight(25); //高度 table.setAutoResizeMode(0);//可左右滑动 table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)//可左右滑动 Table1.setRowMargin(55); //禁止修改 jTable1.setSelectionMode(0);//选择方式 1 连续 0 一行 2 随意 删除选中内容//接收 int row = this.jTable1.getSelectedRow(); if (row == -1) { JOptionPane.showMessageDialog(this, &请选择你需要删除的行!&, &警告&, javax.swing.JOptionPane.ERROR_MESSAGE); } else { int id = (Integer) this.jTable1.getValueAt(row, 4); int result = JOptionPane.showConfirmDialog(this, &是否确定删除?&, &系统提示!&, JOptionPane.YES_NO_OPTION); if (result == JOptionPane.YES_OPTION) { if (Diydao.deletesell(id)) { JOptionPane.showMessageDialog(this, &删除成功!&); this.vendition(); } else { JOptionPane.showMessageDialog(this, &删除失败!&); } } } 将内容添加到表格方法/** * 添加进表格、注意表格名 */ public void insert(String[] str, Vector v3) { //设计表格标题 Vector v1 = new Vector(); for (int i = 0; i & str. i++) { v1.add(str[0]); } //查询到的值 Vector v2 = new Vector(); for (int i = 0; i & v3.size(); i++) { Vector v = new Vector(); if (i % str.length == 0) { for (int j = 0; j & str. j++) { v.add(j, v3.get(i + j)); } v2.add(v); } } //禁止修改、拖动 DefaultTableModel model = new DefaultTableModel(v2, v1) { public boolean isCellEditable(int rows, int cols) { } }; this.jTable1.setModel(model); JTableHeader jt = this.jTable1.getTableHeader(); jt.setReorderingAllowed(false); //不可拖动 jt.setResizingAllowed(false); //不可改变列宽 } String[] str, 标题 Vector v3, 内容 把数据从数据库中读到 JTable 中//获得学号 String strNo=this.cboId.getSelectedItem().toString(); Vector ve=new Vector(); ve.add(&学号&); ve.add(&姓名&); ve.add(&年龄&); ve.add(&性别&); ve.add(&分数&); Vector vec=new Vector();//装查询到的值 StudentDao dao=new StudentDao(); Vector list=dao.getStudent(strNo); for (int i = 0; i & list.size(); i++) { Vector vt=new Vector(); Bean b=(Bean)list.get(i); vt.add(b.getStrNo()); vt.add(b.getName()); vt.add(b.getAge()); vt.add(b.getSex()); vt.add(b.getScore()); vec.add(vt); } DefaultTableModel model=new DefaultTableModel(vec,ve){ //禁止修改 public boolean isCellEditable(int rows,int cols){ } }; this.jTable1.setModel(model); //禁止拖动 JTableHeader jt=this.jTable1.getTableHeader(); jt.setReorderingAllowed(false); jt.setResizingAllowed(false); JTree 树的应用jTreeDefaultMutableTreeN JTree tree=new JTree(); JButton but1=new JButton(&增加节点&); JButton but2=new JButton(&删除节点&); JTextField txt=new JTextField(20); public yin6(){ super(&树---示例&); this.setSize(300, 300); this.setDefaultCloseOperation(3); this.setLocationRelativeTo(this); home=new DefaultMutableTreeNode(&系统&); //根 tree=new JTree(home); tree.setEditable(true);//可修改 this.add(txt,BorderLayout.NORTH); this.add(new JScrollPane(tree)); JPanel j=new JPanel(); j.add(but1);j.add(but2); this.add(j,BorderLayout.SOUTH); but1.addActionListener(this); but2.addActionListener(this); //添加双击事件 tree.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e) { if(e.getClickCount()==2){ DefaultMutableTreeNode defaul=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent(); //排除树根 if(defaul.toString().equals(&系统&)){ }// JOptionPane.showMessageDialog(null,&你选择了:&+defaul.toString()); } } }); } public static void main(String[] args) { new yin6().setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource()==but1){ //要增加一个节点,先要确定增加节点的位置(所选的节点) DefaultMutableTreeNode d=new DefaultMutableTreeNode(txt.getText());// 要 增 加的新节点 DefaultMutableTreeNode de=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//得到所选节点 DefaultTreeModel model=(DefaultTreeModel)tree.getModel();//得到 JTree 模型 if(de!=null){ model.insertNodeInto(d, de, 0);//在当前父节点下,插入一个新节点 } }else if(e.getSource()==but2){ //删除节点 DefaultMutableTreeNode de=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//得到所选节点 DefaultTreeModel model=(DefaultTreeModel)tree.getModel();//得到 JTree 模型 if(de!=null){ int num=JOptionPane.showConfirmDialog(this, & 确 定 删 除 :&+de.toString(),& 提示&,0); if(num==0){ model.removeNodeFromParent(de); } } } } MVC: Model(模型) View(视图) Controller(控制器) JTree: 树JListJL DefaultListModel dmodel=new DefaultListModel(); JButton but1=new JButton(&增加&); JButton but2=new JButton(&删除&); JTextField txt=new JTextField(20); Vector v=new Vector(); public yin5(){ super(&JList 示例&); this.setSize(300, 300); this.setDefaultCloseOperation(3); this.setLocationRelativeTo(this); list =new JList(dmodel); this.add(txt,BorderLayout.NORTH); this.add(new JScrollPane(list)); JPanel j=new JPanel(); j.add(but1); j.add(but2); this.add(j,BorderLayout.SOUTH); but1.addActionListener(this); but2.addActionListener(this); //鼠标双击事件 list.addMouseListener(new MouseAdapter(){ public void mouseClicked(MouseEvent e) { if(e.getClickCount()==2){ dmodel.remove(list.getSelectedIndex()); } } }); } public static void main(String[] args) { new yin5().setVisible(true); } // //public void actionPerformed(ActionEvent e){ if(e.getSource()==but1){ v.addElement(this.txt.getText()); list.repaint();//刷新 dmodel.addElement(this.txt.getText()); }else{ try { Object obj=dmodel.remove(list.getSelectedIndex()); } catch (Exception e1) { } } }JDK1.5 新特性public void show(String str,String ...strings){ //JDK1.5 新特性 //调用 show(&sfs&,&sff&,&sfs&)//参数随便 } String 可随意对话框应用显示一个要求用户键入 String 的对话框:String inputValue = JOptionPane.showInputDialog(&Please input a value&); JOptionPane.showInputDialog(this,&请输入 6 位数密码&); 【 输入可付初始值 showInputDialog(&提示内容&,&初始值&) 】对话框显示下拉列表:Object[] possibleValues = { &你好&, &哈哈&, &呵呵& }; //用户的选择项目 Object selectedValue = JOptionPane.showInputDialog (null, &Choose one&, &Input&,JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0]); setTitle(&您按下了&+(String)selectedValue+&项目&);//任务栏显示自己设定对话框提示内容:Object[] possibleValues = { &是&, &否&}; Object str= JOptionPane.showOptionDialog(this, &雄心。&, &提示&, -1,2, null,possibleValues, possibleValues[0]); 提示图示数字-1 0 1 2 3符号无 X i ! ?代码JOptionPane.DEFAULT_OPTION JOptionPane.ERROR_MESSAGE JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE 或 CANCEL_OPTION下拉键应用获得值: this.cboID.getSelectedItem().toString(); 添加值: this.cboID.addItem(b.getScord()); 清空: this.cboID.removeAllItems(); //清空型号下拉列表的值 设计默认: this.cboID.setSelectedIndex(0); 选项发生改变时触发:if (this.cboID.getSelectedIndex() == -1){ } 【 cboID 为下拉列表的名字 】 锁屏和解屏//主界面写 this.setEnabled(false); new No(this, true).setVisible(true); 注意:this 一定 new 个新界面 写代码 private mainui pm = /** Creates new form No */ public No(java.awt.Frame parent, boolean modal) { super(); initComponents(); this.setLocationRelativeTo(this); //窗口显示在中间 this.pm = (mainui) } //新界面按键中 String login = new String(this.txtmim.getPassword()); if (login.equals(&123456&)) { this.dispose(); this.pm.setEnabled(true); } else if (&&.equals(login)) { javax.swing.JOptionPane.showMessageDialog(this, &密码不能为&, &警告&,JOptionPane.WARNING_MESSAGE); } else { javax.swing.JOptionPane.showMessageDialog(this, &密码错误&, &错误&,JOptionPane.ERROR_MESSAGE); } 参数: java.awt.Frame parent, boolean modal 新界面:No 锁住案件代码: this.jButton2.setEnabled(true); jButton2 按键名调用存储过程con=new DbUtil().getConnection(); String sql=&{call proc_us(?,?,?)}&; try { CallableStatement cs=con.prepareCall(sql); cs.setString(1, strName); cs.setString(2, strPWd); cs.registerOutParameter(3, Types.VARCHAR); cs.execute(); System.out.println(&账号密码是:&+cs.getInt(3)); } catch (SQLException e) { e.printStackTrace(); } 【具体参考 GUI 项目】 进度条 登入出现进度条 1private class myThread extends Thread { public myThread() { this.start(); } public void run() { while (true) { try { int i = ProcessMainFrame.this.jpb.getValue(); if (i & ProcessMainFrame.this.jpb.getMaximum()) { int k = ++i; ProcessMainFrame.this.jpb.setValue(k); jpb.setString(&%& + k); } else { ProcessMainFrame.this.dispose(); } this.sleep(200); } catch (Exception e) { e.printStackTrace(); } if (ProcessMainFrame.this.jpb.getValue() == 100) { new MainFram().setVisible(true); ProcessMainFrame.this.dispose(); } } } } //提示 ProcessMainFrame 进度条界面名 jpb 进度条名 MainFram 跳转到的界面名 登入出现进度条 2//进图条 //先写一个(写在 private void initComponents() 里) setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle(&\u725b\ub\u836f\u7ba1\u7406\u7cfb\u7edf&); addWindowListener(new java.awt.event.WindowAdapter() { public void windowOpened(java.awt.event.WindowEvent evt) { formWindowOpened(evt); } }); //再写一个方法(写在进度条界面上) private void formWindowOpened(java.awt.event.WindowEvent evt) { new java.lang.Thread(new java.lang.Runnable() { public void run() { while (true) { try { int i = StartLoading.this.jProgressBar1.getValue(); if (i & StartLoading.this.jProgressBar1.getMaximum()) { int k = ++i; StartLoading.this.jProgressBar1.setValue(k); StartLoading.this.jProgressBar1.setStringPainted(true); StartLoading.this.jProgressBar1.setString(&正在读取数据& + k + &%&); java.lang.Thread.sleep(5); } else { StartLoading.this.dispose(); } } catch (Exception e) { e.printStackTrace(); } if (jProgressBar1.getValue() == 100) { new Bag.MedicineManaInfo().setVisible(true); new RemindUI().setVisible(true); StartLoading.this.dispose(); } } } }).start(); } //提示 StartLoading 进度条界面名 jProgressBar1 进度条名 RemindUI 跳转到的界面名登入出现进度条 3* 进度条 */ public void yin(){ new java.lang.Thread(new java.lang.Runnable() { public void run() { while (true) { try { int i = Admin.this.jpb.getValue(); if (i & Admin.this.jpb.getMaximum()) { int k = ++i; Admin.this.jpb.setValue(k); Admin.this.jpb.setStringPainted(true); Admin.this.jpb.setString(&正在载入系统,请稍后...& + k + &%&); java.lang.Thread.sleep(35); } else { Admin.this.dispose(); } } catch (Exception e) { e.printStackTrace(); } //判断 if (Admin.this.jpb.getValue() == 100) { new MyAdmin().setVisible(true); Admin.this.dispose(); } } } }).start(); } 可控制提示字体 事件 窗体事件//构造方法 this.addWindowListener(new windowClosed());//添加监听器 //重写类 private class windowClosed implements WindowListener { //打开窗体时发生 public void windowActivated(WindowEvent e) {} //已被关闭时发生 public void windowClosed(WindowEvent e) {} //(试图)关闭窗体时发生 public void windowClosing(WindowEvent e) { System.out.println(&哈哈&); } //窗体不再活跃时 public void windowDeactivated(WindowEvent e) {} //当窗体从最小化恢复是发生 public void windowDeiconified(WindowEvent e) { } //最小化是发生 public void windowIconified(WindowEvent e) { } //打开窗体时发生 public void windowOpened(WindowEvent e){} } 监听器动作事件 调整事件 项目事件 键盘事件 鼠标事件 窗口事件 ActionListener AdjustmentListener ItemListener KeyListener MouseListener WindowListener FocusListener MouseMotionLisetner键盘焦点事件 鼠标移动事件其他ActionEvent 通常按下按钮,双击列表项或选中一个菜单项时,就会生成此事件 JButton, JList, JMenuItem, TextField AdjustmentEvent ComponentEvent 操纵滚动条时会生成此事件 JScrollbar当一个组件移动、隐藏、调整大小或为可见时会生成此事件 Component 将组件添加至容器中或从中删除时会生成此事件 Component ContainerContainerEvent FocusEvent ItemEvent组件获得或失去焦点时会生成此事件单击复选框或列表项时,或者当一个选择框或一个可选菜单项被选择 或取消时生成此事件 JCheckbox, JChoice, JList 接收到键盘输入时会生成此事件 ComponentKeyEvent MouseEvent拖动、移动、单击、按下或释放鼠标或在鼠标进入或退出一个组件时, 会生成此事件 Component 在文本区或文本域的文本改变时会生成此事件 JTextField,JTextAreaTextEventWindowEvent 当一个窗口启动、关闭、正在关闭、恢复、最小化、打开或退出时 会生成此事件 Window 手写代码 常用不能改变大小 this.setSize(300,250); //大小 this.setAlwaysOnTop(true); //顶层 this.setResizable(false); //不能更改大小 this.setLocationRelativeTo(this);//跳到中间位置 // // // // // 用于 JFrame this.setDefaultCloseOperation(3);//退出按键 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //添加显示内容框、按键 this.getContentPane().add(new Button(&确定&),BorderLayout.EAST); //添加一个容器 Panel p=new Panel(); p.add(new Button(&确定&)); this.add(p); //排布 this.add(new Button(&左&),BorderLayout.WEST); this.add(new Button(&中&)); //默认为中 this.add(new Button(&下&),BorderLayout.SOUTH); this.add(new Button(&上&),BorderLayout.NORTH); this.add(new Button(&右&),BorderLayout.EAST); this.addWindowListener(new WindowAdapter(){ //提示 public void windowClosed(WindowEvent e){ JOptionPane.showMessageDialog(null, &确定关闭&); } //关闭时执行 public void windowClosing(WindowEvent e){ System.out.println(&dgsdgs&); System.exit(0); } });// 设置窗体void setTitle(String title) 以 title 中指定的值,设置窗体的标题 void setSize(int w, int h) 设置窗体的大小,参数 w 和 h 指定宽度和高度 void show() 显示窗体Container getContentPane() 获得窗体的内容面板,当要往窗体中添加组件或设置布局时, 要使用到该方法 void setVisible(boolean b) 设置窗体是否为可见,由参数 b 决定void setBackground(Color c) 设置窗体的背景色 JPanel() 创建默认布局(FlowLayout)的面板 以指定的布局管理器创建面板JPanel(LayoutManager layout)void setLayout(LayoutManager layout) 以指定布局管理器设置面板的布局 Component add(Component comp) Void setBackground(Color bg) 往面板内添加控件设置面板的背景色 其他常用 界面跳到中间位置写在子窗体构造方法中 this.setLocationRelativeTo(this); public Test1() { initComponents(); //界面跳出到中间位置 this.setLocationRelativeTo(this); setLocation(new Point(200,300));//指定位置 }禁止修改文本内容1.构造方法写: this.文本名.setEditable(false); 2.取消 editable 第 5 行控制上一条和下一条//下一条: i++ 上一条: i-构造方法下面写: private int i = 0; //全局变量 按键方法中写: i++; ArrayList al = Yin(); if (i & al.size()) { this.txt.setText(al.get(i).toString()); } else { this.jButton1.setEnabled(false); } 快捷键退出按 z 退出 写在子窗体构造方法中 this.tuichu.setMnemonic('z'); public Test1() { //快捷键退出 this.tuichu.setMnemonic('z'); } tuichu 为按键名 z 为快捷键取消关闭功能//构造方法中 this.setDefaultCloseOperation(DEFAULT_CURSOR);去掉最大化按钮最小化按钮去掉. Resizable 属性 钩上 或setResizable(false);日期导入日历包 JDatePicker jdate1=new JDatePicker(); JDatePicker jdate2=new JDatePicker(); jdate1.setFont(new Font(&宋体&,0,12));//定位 jdate2.setFont(new Font(&宋体&,0,12)); //调用系统日历 getRootPane().add(jdate1); jdate1.setEditable(false); //限制输入 getRootPane().add(jdate2); jdate2.setEditable(false); //限制输入 【项目源代码】 日期时间// 动态显示时间 public class DateDay extends Thread { public DateDay() { this.start(); } public void run() {SimpleDateFormat sdf = new SimpleDateFormat(&yyyy-MM-dd HH:mm:ss E&);while (true) { lTime.setText(sdf.format(new Date())); } } } 构造方法 : new DateDay();使用皮肤包用皮肤包. 答:Substance 添加到 lib 档夹下 右键工程 properties java build path -& libraries - & add jars 选中 工程下面的 lib 档夹下的 lib -& substance.jar 第一步:在构造方法 public MainFrame()中,InitComponents 上面写下列代码: //皮肤包 try { UIManager.setLookAndFeel(new SubstanceLookAndFeel()); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); // SubstanceLookAndFeel.setCurrentSkin(new ModerateSkin()); //皮肤 SubstanceLookAndFeel .setCurrentWatermark(new SubstanceBubblesWatermark()); //水印 SubstanceLookAndFeel.setCurrentTheme(new SubstanceAquaTheme()); //主题 SubstanceLookAndFeel.setCurrentButtonShaper(new ClassicButtonShaper()); //按扭 SubstanceLookAndFeel .setCurrentBorderPainter(new ClassicBorderPainter()); //按纽边框 第二步:在 main 里面,public void run()方法的前面写如下代码: //皮肤包 //皮肤包 try { UIManager.setLookAndFeel(new SubstanceLookAndFeel()); } catch (UnsupportedLookAndFeelException e) { e.printStackTrace(); } SubstanceLookAndFeel.setSkin(new BusinessBlueSteelSkin()); SubstanceLookAndFeel.setCurrentButtonShaper(new ClassicButtonShaper()); SubstanceLookAndFeel .setCurrentGradientPainter(new SpecularWaveGradientPainter()); SubstanceLookAndFeel .setCurrentWatermark(new SubstanceMagneticFieldWatermark()); JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true);退出时询问int a=javax.swing.JOptionPane.showConfirmDialog(this, &是否退出&,&警告&, JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE); if(a==0){ this.dispose(); }else{ } 否返回 0 是返回 1 关闭返回 -1线条JProgressBar jpb=new JProgressBar();//线条 jpb.setBounds(0, 400, 600, 25); pa.add(jpb); 只关闭子窗体本身写在子窗体构造方法中 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); this.setDefaultCloseOperation(0); HTMLHTML 基础自动换行 &pre& sdf sdf &/pre& 对齐方式 左右: align 【left、center、right】 垂直: valign 【top、middle、bottom】 font 应用 字段修饰: size (大小,默认:3) color (颜色) face (字体) 语法:&font size=&3& color=&#00FFFF& face=&宋体& & 文本内容 &/font& 列表 无序 有序 语法: &ul& &ol type=&1/A/a.....& start=&1&& &li&无序列表 1 &li&有序列表 1 &li&无序列表 2 &li&有序列表 2 &/ui& &/ol& type 显示类型 数字 字母 start 开始 或写样式: &style type=&text/css&& ol li{list-style-type:upper-} // 覆盖 type ul li{list-style-image:url(image/li.gif);} //图片 &/style& 文本框 maxlength=“6” 文本框限制输入 checked=&checked& 默认选中 disabled=&disabled& 禁止输入 readonly=&readonly& 禁止输入 cols 文本框列数 rows 文本框行数 wrap 文本框换行策略 表格 合并列:colspan=&列数& 合并行:rowspan=&行数& 边框厚度:border=&1& 背景图片:background=&图片路径& 填充属性和间距属性: cellpading 边框和内容之间 cellspacing 内容(单元格间距) 语法: &table cellpading=&5px&& form 和组键 &form method=&提交方式& action=&提交地址&&内容&/form& 提交方式: post:(大量 二进制 安全) get:(少量 安全比 post 差) &input type=&& name=&组建名称& value=&显示名称& checked=&yes/no (是否被选中)& /& type: radio(单选)、checkbox(复选)、submit(提交)、reset(重置)、button(一般按钮) text(文本框)、checkbox(双选)、readonly(只读)、password(密码框) 文本域 &textarea name=&名称& cols=&行数& rows=&列数& wrap=&off/soft/hard&&&/textarea& off(不自动换行)、soft(自动软回车换行)、hard(自动硬回车换行) 下拉表 &select& &option&-=请选择=-&/option& &!--&script& for(var i=18;i&=40;i++) { document.write(&&option value='&+i+&'&&+i+&岁&/option&&); } &/script&--& &script src=&yin.js&&&/script& &!--引用外部脚本代码--& &/select& 框架 &body& ----& &frameset& &frameset rows=&50%,*&&&frame noresize=&true& scrolling=&true& /&&/frameser& rows(上下分)、cols(左右分) 禁止拖动:noresize=&true/false& 是否有滚动条:scrolling=&yes/no&页面跳出方式:target=&_self (替换本页面)& _blank (新页面) _parent (副框架页面显示) _top (整个浏览器) 笔记 DOM 对象元素节点、文本节点、属性节点 元素节点:根元素 文本节点:文本内容 属性节点:超链接等 。 。 。 一些典型的 DOM 属性: x.nodeName - x 的名称 x.nodeValue - x 的值 (文本值) x.parentNode - x 的父节点 x.childNodes - x 的子节点 (返回数组) x.attributes - x 的属性节点(所有 超链接等..) x.firstChild 第一个子节点 x.appendChild(node) - 向 x 插入子节点 x.removeChild(node) - 从 x 删除子节点 语法: var x=document.documentE //获取根节点 alert(x.nodeName);document.getElementsByTagName(name/p/input...); (返回数组) - 获取带有指定标签名称的所有元素 ====================================================== 三个重要的 DOM 节点属性是:nodeName、nodeValue、nodeType 元素节点的 nodeName 与标签名相同 属性节点的 nodeName 是属性的名称 文本节点的 nodeName 永远是 #text (没用) 元素节点的 nodeValue 是 undefined(没有) 文本节点的 nodeValue 是文本自身 属性节点的 nodeValue 是属性的值 而属性节点列表支持 getNamedItem()方法获得特定名称的属性节点对象 语法: var firstmeta = document.documentElement.getElementsByTagName(&meta&)[0]; var atts = firstmeta. alert(atts.length); alert(atts.getNamedItem(&name&).nodeValue); 使用 document 文档对象的一系列方法可以创建各种节点 createElement 创建元素节点,参数为元素名称即标签名,返回元素节点。 createTextNode 创建文本节点,参数为文本本身,返回文本节点。 createAttribute 创建属性节点,参数为属性名称,返回属性节点。 ============================================================== 添加同等级的: appendChild 在当前节点内部最后一个子节点后面添加新的子节点,参数为新的子节点。 insertBefore(&子节点&,&指定节点&) 在当前节点内部指定的的子节点之前添加新的子节点, 第一个参数为新的子节点,第二个参数为当前节点内部指定的子节点。 insertAfter 在当前节点内部指定的的子节点之后添加新的子节点, 第一个参数为新的子节点,第二个参数为当前节点内部指定的子节点。 setAttributeNode 在当前元素节点设置属性节点,要求调用此方法的节点 的类型为元素类型,参数为要设置的属性节点。 语法: var root=document.documentE vat mybody=root.childNodes[1]; mybody.方法 节点的增删改查 createElement 方法用于创建元素节点 createAttribute 方法 用于创建属性节点 createTextNode 方法 用于创建文本节点。 向元素节点内添加子元素节点或文本节点:appendChild 方法。 在特定的节点前后插入新的节点:insertAfter 和 insertBefore 方法 为元素节点添加属性节点:setAttributeNode 方法。 要修改文本节点的值或更改属性节点的值,应使用节点的 nodeValue 属性。 删除节点使用:removeChild 方法。 方法 API语法 API JS1.html 或 ppt 第十章《JavaScript 本地对象》 数组应用 join() reverse() sort() concat() slice() splice() push() pop() unshift() shift() 通过指定的分隔符将数组的所有元素拼接成一个字符串。 颠倒数组中元素的顺序。 对数组的元素进行排序 连接两个或更多的数组,并返回结果。 从某个已有的数组返回选定的元素 删除元素,并向数组添加新元素。 向数组的末尾添加一个或更多元素,并返回新的长度。 删除并返回数组的最后一个元素 向数组的开头添加一个或更多元素,并返回新的长度。 删除并返回数组的第一个元素 时间显示格式 toString() toTimeString() toDateString() toGMTString() toUTCString() 把 Date 对象转换为字符串。 把 Date 对象的时间部分转换为字符串。 把 Date 对象的日期部分转换为字符串。 根据格林尼治时间,把 Date 对象转换为字符串。 根据世界时,把 Date 对象转换为字符串。 把 Date 对象转换为本地时间格式字符串。 把 Date 对象的时间部分转换为本地时间格式字符串 把 Date 对象的日期部分转换为本地时间格式字符串 获取时间 getDate() getDay() getMonth() getFullYear() getYear() getHours() getMinutes() getSeconds() getMilliseconds() getTime() 从 Date 对象返回一个月中的某一天 (1 ~ 31) 从 Date 对象返回一周中的某一天 (0 ~ 6) 从 Date 对象返回月份 (0 ~ 11) 从 Date 对象以四位数字返回年份 从 Date 对象以两位或四位数字返回年份。 返回 Date 对象的小时 (0 ~ 23) 返回 Date 对象的分钟 (0 ~ 59) 返回 Date 对象的秒数 (0 ~ 59)) 返回 Date 对象的毫秒(0 ~ 999) 返回 1970 年 1 月 1 日至今的毫秒数 设置时间toLocaleString() toLocaleTimeString() toLocaleDateString() setDate() 设置 Date 对象中月的某一天 (1 ~ 31)) setMonth() 设置 Date 对象中月份 (0 ~ 11)) setFullYear() 设置 Date 对象中的年份(四位数字) setYear() 设置 Date 对象中的年份(两位或四位数字) 。 setHours() 设置 Date 对象中的小时 (0 ~ 23) setMinutes() 设置 Date 对象中的分钟 (0 ~ 59) setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59) setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999) setTime() 通过向时间原点添加或减去指定毫秒数来计算日期和时间(区域时间 8:00:00) 字体布局 语法: (字符串.方法名()) big()、small() 用大号字体、小字号体显示字符串。 bold() 使用粗体显示字符串。 italics() 使用斜体显示字符串。 strike() 使用删除线来显示字符串。 fontcolor() 使用指定的颜色来显示字符串。 fontsize() 使用指定的尺寸来显示字符串。 sub()、sup() 把字符串显示为下标、上标。 toLowerCase() 把字符串转换为小写。 toUpperCase() 把字符串转换为大写。 fixed() 以打字机文本显示字符串。 link() 将字符串显示为链接。 anchor() 创建 HTML 锚。 字符串应用 charAt() 返回在指定位置的字符。 charCodeAt() 返回在指定的位置的字符的 Unicode 编码。 concat() 连接字符串。 fromCharCode() 从字符编码创建一个字符串。静态方法,语法:String.fromCharCode(65); indexOf() 从前向后检索字符串。 lastIndexOf() 从后向前搜索字符串。 localeCompare() 用本地特定的顺序来比较两个字符串。 match() 找到一个或多个正在表达式的匹配。 replace()、search() 替换、检索与正则表达式匹配的子串。 slice() 提取字符串的片断。 split() 把字符串分割为字符串数组。 substr() 从起始索引号提取字符串中指定数目的字符。 substring() 提取字符串中两个指定的索引号之间的字符。 编码应用 decodeURI() 译码某个编码的 URI。 decodeURIComponent() 译码一个编码的 URI 组件。 encodeURI() 把字符串编码为 URI。 encodeURIComponent() 把字符串编码为 URI 组件。 eval() 计算字符串,并把它作为脚本代码来执行。 isFinite() 检查某个值是否为有穷大的数。 isNaN() 检查某个值是否是数字。 parseFloat() 解析一个字符串并返回一个浮点数。 parseInt() 解析一个字符串并返回一个整数。 三角函数 abs(x) 返回数的绝对值 cos(x)、acos(x) 返回数的正弦、反余弦值 sin(x) 、asin(x) 返回数的正弦、反正弦值 tan(x)、atan(x) 返回角的正切、返回 -PI/2 与 PI/2 之间弧度数的反正切值 atan2(y,x) 返回从 x 轴到点 (x,y) 的角度 ceil(x)、floor(x) 对一个数进行上舍入。对一个数进行下舍入。 exp(x)、log(x) 返回 e 的指数。返回数的自然对数(底为 e) max(x,y)、min(x,y) 返回 x 和 y 中的最高值 pow(x,y) 返回 x 的 y 次幂 random() 返回 0 ~ 1 之间的随机数 round(x) 把一个数四舍五入为最接近的整数 sqrt(x) 返回数的平方根 事件驱动窗体事件 Window 对象事件: onload 浏览器加载一个网页文档或一个图像完成时 onunload 浏览器卸载一个网页文档时 onresize 浏览器窗口或框架的尺寸发生变化时 onscroll 浏览器窗口或框架中的网页发生滚动时 鼠标事件 onmousedown 按键被按下 onmouseup 按键被松开 onmouseover 移到某元素表面之上 (进入事件) onmouseout 从某元素表面移开 (移出事件) onmousemove 在某元素表面持续移动 onclick 单击事件 ondblclick 双击事件 语法:标签里:onmouseover=&myover();& (尽量写方法)调用方法 键盘事件 onkeydown onkeyup onkeypress Form 事件 onsubmit onreset 焦点事件 onfocus onblur键盘按键被按下 键盘按键被松开 键盘按键被按下并松开表单提交时 表单重置时界面元素获得焦点时 界面元素失去焦点时数据变更事件 onchange 表单中的文本元素内容发生变化时或列表框发生选项切换时 对象事件属性 button clientX clientY screenX screenY ctrlKey shiftKey altKey type keyCode返回当事件被触发时,哪个鼠标按钮被点击。 返回当事件被触发时,鼠标指针相对于页面正文的水平坐标。 返回当事件被触发时,鼠标指针相对于页面正文的垂直坐标。 返回当某个事件被触发时,鼠标指针相对于荧幕的水平坐标。 返回当某个事件被触发时,鼠标指针相对于荧幕的垂直坐标。 返回当事件被触发时,&CTRL& 键是否被按下。 返回当事件被触发时,&SHIFT& 键是否被按下。 返回当事件被触发时,&ALT& 是否被按下。 返回事件的类型。 返回键的虚拟键盘代码或此键的字符的 Unicode 码。语法:function myYin(){ alert(window.event.button);//是否点击该按键 } &input type=&& ... onclick=&myYin();&&; 动态注册事件 ( 1) function 方法名(){ document.getElementById(&ID&).onchange=//数据变更事件 } function mychange(){ alert(&语句&); } ( 2) 语法:function myYin(){ alert(&窗体大小改变&); } window.onresize=myYin();//注意顺序 动态产生按键 var but=document.createElemnet(&input&); but.type=&button (类型)&; but.width=&50&; but.height=&50&; but.style.left=&1&;//初始位置 but.style.top=&1&; btu.value=&提交&; div.appendChild(btt);//添加位置 div.style.position=&absolute&; div.style.top=&0&; div.style.left=&0&; mydiv.appendChild(div);//嵌套添加 //个数可用循环 ,添加时可注册事件 but.attachEvent(&onclick&,clearText); //IE 时使用 but.addEventListener(&click&,clearText,false); //其他浏览器用 浏览器对象BOM:浏览器对象,浏览器提供的一组类,供脚本使用以实现与浏览器的交互。 Window 对象 Navigator 对象 Screen 对象 History 对象 Location 对象 Window 对象方法属性: alert()、prompt()、confirm() 警告对话框、输入对话框、确认对话框。 setInterval()、clearInterval() 按周期调用函数或计算表达式。取消。 setTimeout()、clearTimeout() 在延时后调用函数或计算表达式。取消。 open()、close() 打开一个新的浏览器窗口。关闭浏览器窗口。 moveBy()、moveTo() 移动窗口。 resizeBy()、resizeTo() 调整窗口的大小。 scrollBy()、scrollTo() 滚动窗口的内容。 blur()、focus() 把键盘焦点从顶层窗口移开。给予焦点。 print() width=pixels 窗口的文档显示区的宽度。以像素计。 closed name 返回窗口是否已被关闭。 设置或返回窗口的名称。opener 返回对创建此窗口的窗口的引用。 parent 返回父窗口。 self 返回对当前窗口的引用。等价于 window 属性。 top 返回最顶层的先辈窗口。 window 等价于 self 属性,它包含了对窗口自身的引用。 screenLeft、screenTop screenX、 screenY 窗口的左上角在荧幕上的的 x 坐标和 y 坐标。 document、history 对 Document 对象、History 对象的只读引用。 location 用于窗口或框架的 Location 对象。 navigator、screen 对 Navigator 对象、Screen 对象的只读引用。 frames 返回窗口中所有命名的框架的集合。 open 方法 height=pixels 窗口的文档显示区的高度。以像素计。 left=pixels 窗口的 x 坐标。以像素计。 top=pixels 窗口的 y 坐标。 directories=yes|no|1|0 是否添加目录按钮。默认为 yes。 location=yes|no|1|0 是否显示地址字段。默认是 yes。 menubar=yes|no|1|0 是否显示菜单栏。默认是 yes。 scrollbars=yes|no|1|0 是否显示滚动条。默认是 yes。 status=yes|no|1|0 是否添加状态栏。默认是 yes。 titlebar=yes|no|1|0 是否显示标题栏。默认是 yes。 toolbar=yes|no|1|0 是否显示浏览器的工具栏。默认是 yes。 resizable=yes|no|1|0 窗口是否可调节尺寸。默认是 yes。 fullscreen=yes|no|1|0 是否使用全屏模式显示浏览器。默认是 no。 channelmode=yes|no|1|0 是否使用剧院模式显示窗口。默认为 no。 打印当前窗口的内容。 属性 appCodeName appName appVersion cookieEnabled Platform userAgent screen() availHeight availWidth colorDepth height width protocol hostname port host pathname hash search href 描述 返回浏览器的代码名。 返回浏览器的名称。 返回浏览器的平台和版本信息。 返回指明浏览器中是否启用 cookie 的布尔值。 返回运行浏览器的操作系统平台。 返回由客户机发送服务器的 user-agent 头部的值。返回显示屏幕的高度 (除 Windows 任务栏之外)。 返回显示屏幕的宽度 (除 Windows 任务栏之外)。 返回目标设备或缓冲器上的调色板的比特深度。 返回显示屏幕的高度。 返回显示器荧幕的宽度。 设置或返回当前 URL 的协议。 设置或返回当前 URL 的主机名。 设置或返回当前 URL 的端口号。 设置或返回主机名和当前 URL 的端口号。 设置或返回当前 URL 的路径部分。 设置或返回从井号 (#) 开始的 URL(锚) 。 设置或返回从问号 (?) 开始的 URL(查询部分) 。 设置或返回完整的 URL。 文档对象document.getElementById(“表单标签的 ID”) document.getElementsByName(“表单标签的 name”)[索引] document.表单标签的 name 属性 getElementById() 返回对拥有指定 id 的第一个页面元素对象的引用。 getElementsByName() 返回带有指定名称的页面元素对象集合。 getElementsByTagName() 返回带有指定标签名的页面元素对象集合。 write() 向文档写 HTML 表达式 或 JavaScript 代码。 writeln() 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。 语法: function useYin2(){ //根据标签 属性查找元素,返回一个数组对象 var ts=document.getElementsByTagName(&input&); for(var i=0;i&ts.i++){ alert(ts[i].value); } } ============================================= //通过 name 拿值 function useYin2(){ alert(document.all(&name&).tagName); } all[] 提供对文档中所有 HTML 元素的访问。 anchors[] 返回对文档中所有 Anchor 对象的引用。 forms[] 返回对文档中所有 Form 对象引用。 images[] 返回对文档中所有 Image 对象引用。 links[] 返回对文档中所有 Area 和 Link 对象引用。 ========================================================= innerText | innerHTML function useYin2(){ var m=document.getElementsById(&id&); m.innerText=&这是一个段落& ; m.innerHTML=&&a href='http://www.baidu.com'&百度&/a&; } ============ style 根据鼠标滚动图片(图片不对) ================== &div id=&div1& style=&position:top:100left:50 & &img src=&图片地址& id=&img1&/& &span id=&span1& style=&carsor:hand&&【关闭】&/span& &/div& //事件 widow.onscroll= function myscroll(){ var div=document.getElementsById(&div1&); div.style.top=document.body.scrollTop+100+&px&;//初始 top } ============ form 对象 ================== action 设置或返回表单的 action 属性。 enctype 设置或返回表单用来编码内容的 MIME 类型。 id 设置或返回表单的 id。 length 返回表单中的元素数目。 method 设置或返回将数据发送到服务器的 HTTP 方法。 name 设置或返回表单的名称。 target 设置或返回表单提交结果的 Frame 或 Window 名。 &form id=&frml& name=&frm& method=&post&& &Input type=&button& id=&btn1& onclick=&but();& vaule=&AA&/& &/form& function myscroll(){ alert(document.getElementsById(&frm&)) }reset() 把表单的所有输入元素重置为它们的默认值。 submit() 提交表单。 function doSubmit(){ document.forms[0].submit();}function doReset(){ document.getElementById(&frm_1&).reset(); } &form id=&frm_1& name=&frm& action=&search.html& method=&get&& KeyWord:&input type=&text& name=&txtKeyWord& /& &input type=&button& name=&btn& value=& 提 交 & onclick=&doSubmit();& /& &input type=&button& name=&btn& value=& 重 置 & onclick=&doReset();& /&&/form& 图片广告评分 悬浮飘动广告(单图片)&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &meta http-equiv=&Content-Type& content=&text/ charset=gb2312& /& &title&无标题文档&/title& &!--设置边框为 0--& &style& * {margin:0padding:0} &/style& &script& var xpos=0; var ypos=0; //距左上角坐标 var step=1; //移动距离(可控制速度) var xDirection=0; var yDirection=0; function myload() { var div=document.getElementById(&div1&); //获取 DIV var width=document.body.clientW //窗体宽 var height=document.body.clientH //窗体高 document.getElementById(&tb1&).value=(height+&,&+width);//窗体大小 if(xDirection==0){ xpos=xpos+ }else{ xpos=xpos- } if(yDirection==0){ ypos=ypos+ }else{ ypos=ypos- } //初始 X if(xpos&=width-div.offsetWidth){ xDirection=1; } if(xpos&0){ xDirection=0; } //初始 y if(ypos&=height-div.offsetHeight){ yDirection=1; } if(ypos&0){ yDirection=0; } //div 移位 div.style.top= div.style.left= window.setTimeout(&myload();&,10); //间隔 10 毫秒调用一次 } &/script& &/head& &body onLoad=&myload();&& &input type=&text& id=&tb1&/& &div id=&div1& style=&position:z-index:10;&& &img id=&img1& src=&image/bbs_s1.gif& /& &!-- 广告图片--& &/div& &/body& &/html& 悬浮禁动广告&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&&html& &head& &title& New Document &/title& &script& function myscroll() { //设置 div 居顶端距离不变 document.getElementById(&div1&).style.top=document.body.scrollTop+50+&px&; } window.onscroll=//浏览器窗口或框架中的网页发生滚动时(页面滚动事件) &/script& &/head& &body& &div id=&div1& style=&position:top:100right:2 width:1300 height:600 && &div id=&div2& style=&float:&& &img src=&image/bbs_s1.gif& style=&cursor:float:& onclick=&document.getElementById('div1').style.display='none';&/& &/div& &div id=&div3&& &img src=&image/4.jpg&/& &/div& &/div& &/body& &/html& 多图片左右移动写&body&标签里: &marquee direction=&right& onmouseover=&this.stop();& onmouseout=&this.start();& behavior=&slide& scrollamount=&8&& &a href=&#&&&img src=&image/4.gif&/&&/a& &!-- 可加超链接 --& &img src=&image/1.gif&/& &img src=&image/2.gif&/& &img src=&image/3.gif&/& &img src=&image/4.gif&/& &/marquee& 注释: scrollamount //控制速度 direction //初始左右图片显示组图效果&html& &head& &title& New Document &/title& &script& var currentindex=1; var maxindex=3; //调用方法 function myload(){ for(var i=1;i&=i++){ //判断是否为第 1 张 if(currentindex==i){ //显示 document.getElementById(i).style.display=&inline&; }else{ //覆盖原来的图片 document.getElementById(i).style.display=&none&; } } if(currentindex==maxindex){ currentindex=1; }else{ currentindex++; } window.setTimeout(&myload()&,1000); } &/script& &/head& &body onload=&myload();&& &div id=&div1&& &img id=&1& src=&image/1.gif&/& &img id=&2& src=&image/2.gif&/& &img id=&3& src=&image/3.gif&/& &/div& &/body& &/html& 项目使用 JS 语法打印语句 document.write(&hello world!&br /&Name:张三&);&!--打印语句--& 弹出对话框 window.alert(&hello world\nName:张三&);&!--弹出对话框--& 查看数据类型 // var i=10; // alert(typeof i); 数据转换 // var a=parseInt(&123aaa&); // alert(typeof a); //Number &!--转换 2 进制数据--& //var b=parseInt(&); //alert(b); &!--布尔型 转换--& //var b=Number(true); //alert(b); 定义函数 可返回 可带参(参数不一致也行) /* function yin() { alert(&sgfsa&); //return &sf&; arguments //未定义是接收参数 数组类型 arguments[0] } yin();//调用*/ Array 的 API 【以下方法】 join 方法 var ary1=new Array(&aaa&,&bbb&,&ccc&); document.write(ary1.join(&+&))//输出 document.write(&&br/&&br/&&); document.write(ary1.join()); document.write(&&br/&&br/&&); document.write(ary1); document.write(&&br/&&br/&&); reverse 方法 ,转置 document.write(ary1.reverse()); document.write(&&br/&&br/&&); sort()方法, 排序 var ary2=new Array(&bbbbb&,&aaa&,&cccc&); document.write(ary2.sort()); document.write(&&br/&&br/&&); concat()方法,连接数组 document.write(ary1.concat(ary2)); document.write(&&br/&&); document.write(ary1.concat(ary2),&ddd&); document.write(&&br/&&); document.write(ary1.concat(ary2).sort()); document.write(&&br/&&br/&&); silce()方法,找出指定元素 document.write(ary1.slice(0)+&&br/&&); //重 0 开始 document.write(ary1.slice(1,2)+&&br/&&br/&&);//不包括 2 splice()方法,删除元素,并向数组添加新元素 var ary3=new Array(&a&,&b&,&c&,&d&,&e&,&f&); document.write(ary3.splice(1,2)+&&br/&&);//删除 document.write(ary3.splice(1,2,&F&,&F&,&F&)); document.write(&&br/&&br/&&); push()方法,进栈,向数组的末尾添加一个或更多元素,并返回新的长度 var ary4=new Array(&a&,&b&,&c&,&d&,&e&,&f&); document.write(ary4.length+&&br/&&); document.write(ary4.push(&A&,&B&)); document.write(&&br/&&br/&&);//不包括 2 pop()方法,出栈,删除并返回数组的最后一个元素 document.write(ary4.pop()); document.write(&&br/&&br/&&);//不包括 2div 样式布局&html& &head& &title& div+css &/title& &style type=&text/css&& *{margin:0padding:0} div { border:1 } #all { width:900 } #top { height:200 background-color:# margin-bottom:5 } #center { height:500 } #left { width:200 background-color:# height:500 margin-right:5 float: } #content { width:500 background-color:# height:500 float: margin-right:5 } #right { width:182 height:500 float: background-color:# } #bottom { width:900 height:200 background-color: } &/style& &/head& &body& &div id=&all&& &div id=&top&&顶部内容&/div& &div id=&center&& &div id=&left&&左边内容&/div& &div id=&content&&中间内容&/div& &div id=&right&&右边内容&/div& &/div& &div id=&bottom&& 底部内容 &/v& &/div& &/body& &/html& 动态建表格添加属性:.setAttributeNode(); 添加节点:.appendChild(); 脚本方法里: var table=document.getElementsByTagName(&table&)[0]; var mytr=document.createElement(&tr&); var mytd=document.createElement(&td&); var mytd2=document.createElement(&td2&); //创建文本 var text=document.createTextNode(&文本值&); //创建按键 var but=document.createElement(&input&); var mytype=document.createAttribute(&type&); mytype.nodeValue=&button &; //属性 var value=document.createAttribute(&value&); value.nodeValue=&提交&; //按键名称 but.setAttributeNode(mytype); //设置进 but 添加属性 but.setAttributeNode(value); //设置进 but 添加属性 //创建属性节点 but.setAttribute(&onclick&,mydel); //事件方法//添加子元素 mytd.appendChild(text); mytd2.appendChild(but); mytr.appendChild(mytd); mytr.appendChild(mytd2); table.firstChild.appendChild(mytr); //表格第一个元素添加 tr ------------------------------------&body& &table border=1& &/table& &/body& 动态添加按键function myYin(){ var but=document.createElement(&input&); //获取 input var button=document.createAttribute(&type&); //input的 type button.nodeValue=&button&; //type=&button&; var buttonValue=document.createAttribute(&value&); //input的 value buttonValue.nodeValue=&提交&; // value=&提交& but.setAttributeNode(button); //设置进but 添加属性 but.setAttributeNode(buttonValue); //添加属性值 var bv=document.getElementById(&man&); div.appendChild(but); //添加进div //相当于: &input type=&button& value=&提交& & } // 或 but.type=&button&; but.width=&80&; //宽 but.height=&30&; //高 but.value=&读取xml&; var div=document.getElementById(&man&); div.appendChild(but);&BODY& &div id=&man& style=&width:350 height:155 background-color:#FF0099; border-color:#0033CC;&&&/div& &div& &input type=&button& value=&点击看看& onclick=&myYin()& /& &/div& 动态添加按键注册事件&html& &head& &title& New Document &/title& &script& function myload() { var div=document.getElementById(&div1&); //获取 div for(var i=0;i&6;i++) { for(var j=0;j&6;j++) { //动态注册 var btn=document.createElement(&input&); btn.type=&button&; //类型 btn.width=&50&; //宽 btn.height=&50&; //高 btn.value=&&; //名字 //如果是 IE 浏览器 if(document.all){ btn.attachEvent(&onclick&,myclick);//注册事件 //注册事件}else{ btn.addEventListener(&onclick&,myclick,false); }div.style.display=&inline&; //显示

我要回帖

更多关于 java窗体跳转 的文章

 

随机推荐