100分求一個完整的JTextField的只能輸入數字或者小數的代碼

horizonlyhw 2008-08-07 09:16:39
求一個完整的JTextField的只能輸入數字或者小數的代碼
...全文
124 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jing_123456 2012-04-14
  • 打赏
  • 举报
回复
public void focusGained(FocusEvent e) {
// TODO Auto-generated method stub
String text=currencyTextField.getText();
boolean b = Pattern.matches("(0|[1-9]\\d*)(\\.\\d)?(\\d*)*",text);
if(!b)
currencyTextField.setText("");

}

@Override
public void focusLost(FocusEvent e) {
// TODO Auto-generated method stub
String text=currencyTextField.getText();
System.out.println("text:"+text);
boolean b = Pattern.matches("(0|[1-9]\\d*)(\\.\\d)?(\\d*)*",text);
System.out.println("b:"+b);
if(!b)
currencyTextField.setText("");
}
jing_123456 2012-04-14
  • 打赏
  • 举报
回复
就是,当鼠标点击其他的组件时,就把小数点后的数字给截掉了,可我想输入小数。希望会的高手,给指点一下,谢谢了
jing_123456 2012-04-14
  • 打赏
  • 举报
回复
文本框里为什么不能输入小数?
horizonlyhw 2008-08-07
  • 打赏
  • 举报
回复
哈哈 我已經搞定了 ~ 用的是focusListener 分享一下 正則表達式是 (0|[1-9]\\d*)(\\.\\d)?(\\d*)*
sjkof 2008-08-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 horizonlyhw 的回复:]
思路我有~~ 我想要一個完整的代碼 以后大家也可以用啊~ 監聽用什么監聽?
[/Quote]

监听keydown比较好
horizonlyhw 2008-08-07
  • 打赏
  • 举报
回复
思路我有~~ 我想要一個完整的代碼 以后大家也可以用啊~ 監聽用什么監聽?
bestseal 2008-08-07
  • 打赏
  • 举报
回复
在监听里加一个判断不就行了
  • 打赏
  • 举报
回复
正则判断下再setText
bsr1983 2008-08-07
  • 打赏
  • 举报
回复
给JTextField添加keyListener判断当前输入的字符试试,也可以使用JFormattedTextField
YSocket 2008-08-07
  • 打赏
  • 举报
回复
只能对字段进行检查,一个JTextField是可以什么都输入的
wzh0439 2008-08-07
  • 打赏
  • 举报
回复
不是只能是这个比较好点
wzh0439 2008-08-07
  • 打赏
  • 举报
回复
这个只能去自己修改一下那个text的docDocument
第1篇 Java编程基础   第1章 Java开发环境的搭建(教学视频:9分钟) 2   1.1 理解Java 2   1.2 搭建Java所需环境 3   1.2.1 下载JDK 3   1.2.2 安装JDK 4   1.2.3 配置环境 5   1.2.4 测试JDK配置是否成功 7   实例1 开发第一个Java程序 7   第2章 Java基础类型与运算符(教学视频:39分钟) 9   2.1 基础类型 9   实例2 自动提升 9   实例3 自动转换 10   实例4 常用基础类型之强制转换 11   2.2 运算符 12   实例5 算术运算符 12   实例6 关系运算符 13   实例7 逻辑运算符 14   实例8 位运算符 15   实例9 移位运算符 16   实例10 转型运算符 17   2.3 其他形式 18   实例11 常量与变量 18   实例12 各种进制的转换 19   实例13 Java中的进制与移位运算符 22   第3章 条件控制语句(教学视频:75分钟) 26   3.1 if控制语句 26   实例14 判断输入的年份是否为闰年 26   实例15 抽奖活动 27   3.2 for语句 28   实例16 小九九乘法表 28   实例17 如何列出素数 29   实例18 Java中的递归 31   实例19 男生女生各多少人 32   实例20 求水仙花数 34   实例21 求任意一个正数的阶乘 35   实例22 求n的n次方 35   实例23 利用for循环输出几何图形 36   实例24 杨辉三角 38   3.3 while语句 39   实例25 求1到100之间的和 39   实例26 存上100元需要多少天 40   实例27 输出100之间的所有偶数 41   实例28 如何判断回文数字 42   3.4 do…while语句 43   实例29 输出100之间的所有奇数 44   实例30 求最大的随机数 44   3.5 switch语句 45   实例31 判断字母分类 46   实例32 优良及差 47   实例33 打印任意一年日历 48   实例34 一年四季的划分 51   第2篇 Java数据处理   第4章 异常处理(教学视频:62分钟) 54   4.1 编译时异常 54   实例35 除0发生的算术异常(ArithmeticException) 54   实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55   实例37 数组元素类型不匹配异常(ArrayStoreException) 56   实例38 强制类型转换异常(ClassCastException) 56   实例39 索引越界异常(IndexOutOfBoundsException) 57   实例40 空指针异常(NullPointerException) 58   实例41 数字格式转换异常(NumberFornatException) 59   实例42 字符串索引越界异常(StringIndexOutBounds) 60   实例43 操作错误(UnsupportedOperationException) 60   4.2 运行时异常 61   实例44 找不到指定类时发生的异常(ClassNotFoundException) 62   实例45 请求的方法不存在(NoSuchMethodException) 63   4.3 try…catch捕获异常 65   实例46 try…catch捕获异常的实例 66   实例47 try…catch…finally捕获异常的实例 67   实例48 try…catch嵌套捕获异常的实例 68   4.4 throws声明异常 69   实例49 throws声明异常实例一 69   实例50 throws声明异常实例二 70   4.5 throw抛出异常 72   实例51 throw抛出异常实例一 72   实例52 throw抛出异常实例二 73   4.6 自定义异常 74   实例53 自定义异常实例一 74   实例54 自定义异常实例二 75   第5章 数组(教学视频:98分钟) 78   5.1 一维数组 78   实例55 一
1,编写程序,判断给定的某个年份是否是闰年。 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年。 (2)若某个年份能被400整除,则也是闰年。 import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if (year<0||year>3000){ System.out.println("年份有误,程序退出!"); System.exit(0); } if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile"); else System.out.println(year+" is not bissextile "); } } 2,给定一个百分制的分数,输出相应的等级。 90分以上 A级 80~89 B级 70~79 C级 60~69 D级 60分以下 E级 import java.util.Scanner; class Mark{ public static void main(String[] args){ System.out.println("请输入一个分数"); //定义输入的分数为“mark”,且分数会有小数 double mark; Scanner scanner = new Scanner(System.in); mark = scanner.nextDouble(); //判断是否有输入错误。 if(mark<0||mark>100){ System.out.println("输入有误! "); System.exit(0); } /*判断分数的等级 90分以上者A级, 80~89分者 B级,70~79分者 C级, 60~69者 D级,60分以下 E级 */ if (mark>=90) System.out.println("this mark is grade \'A\' "); else if (mark>=80) System.out.println("this mark is grade \'B\' "); else if (mark>=70) System.out.println("this mark is grade \'C\' "); else if (mark>=60) System.out.println("this mark is grade \'D\' "); else System.out.println("this mark is grade \'E\' "); } } 3,编写程序求 1+3+5+7+……+99 的和值。 class he{ public static void main(String[] args){ int number = 1; //初始值1,以后再+2递增上去 int sum = 0; for ( ; number <100; number+=2 ){ sum += number; } System.out.println("1+3+5+7+……+99= " +sum); } } 4、利用for循环打印 9*9 表? 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 //循环嵌套,打印九九乘法表 public class NineNine{ public static void main(String[]args){ System.out.println(); for (int j=1;j<10;j++){ for(int k=1;k<10;k++) { //老师的做法,判断语句里的 k<=j,省去下列的if语句。 if (k>j) break; //此处用 continue也可以,只是效率低一点 System.out.print(" "+k+"X"+j+"="+j*k); } System.out.println(); } } } 6、输出所有的水仙花数,把谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 class DafodilNumber{ public static void main(String[] args){ System.out.println("以下是所有的水仙花数"); int number = 100; // 由于水仙花数是三位数,故由100开始算起 int i, j, k; // i j k 分别为number 的百位、十位、个位 for (int sum; number<1000; number++){ i=number/100; j=(number-i*100)/10; k=number-i*100-j*10; sum=i*i*i+j*j*j+k*k*k; if (sum==number) System.out.println(number+" is a dafodil number! "); } } } 7、求 a+aa+aaa+.......+aaaaaaaaa=? 其中a为1至9之中的一个数,项数也要可以指定。 import java.util.Scanner; class Multinomial{ public static void main(String[] args){ int a; //定义输入的 a int howMany; //定义最后的一项有多少个数字 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个 1~9 的 a 值"); a = scanner.nextInt(); System.out.println("请问要相加多少项?"); howMany = scanner.nextInt(); int sum=0; int a1=a; // 用来保存 a 的初始值 for (int i=1; i<=howMany; i++){ sum+= a; a = 10*a +a1; // 这表示a 的下一项 // 每次 a 的下一项都等于前一项*10,再加上刚输入时的 a ;注意,这时的 a 已经变化了。 } System.out.println("sum="+sum); } } 8、求 2/1+3/2+5/3+8/5+13/8.....前20项之和? class Sum{ public static void main(Sting[] args){ double sum=0; double fenZi=2.0, fenMu=1.0; //初始的分子 (fenZi)=2,分母(fenMu)=1 for(int i=1; i<=20; i++){ sum += fenZi / fenMu ; fenMu = fenZi; //下一项的分母 = 上一项的分子 fenZi += fenMu; //下一项的分子 = 上一项的分子加分母 } System.out.println("sum= "sum); } } 9、利用程序输出如下图形: * * * * * * * * * * * * * * * * * * * * * * * * * class Asterisk{ public static void main(String[] args){ for (int i=1; i<=13; i+=2){ for(int j=1; j<=i && i+j<= 14; j++){System.out.print("* ");} System.out.println(); // 换行 } } } 11、计算圆周率 PI=4-4/3+4/5-4/7....... 打印出第一个大于 3.1415小于 3.1416的值 class Pi { public static void main(String[] args){ double pi =0; //定义初始值 double fenZi = 4; //分子为4 double fenMu = 1; //第一个4,可看作分母为1 的分式,以后的分母每次递增2 for (int i = 0; i < 1000000000; i++){ //运行老久,减少循环次数会快很多,只是精确度小些 pi += (fenZi/fenMu) ; fenZi *= -1.0; //每项分子的变化是+4,-4,+4,-4 .... fenMu += 2.0; //分母的变化是1,3,5,7, .... 每项递加2 } System.out.println(pi); } } 输出结果为pi = 3.1415926525880504,应该不精确 12、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值 1 1 2 3 5 8 13 21 34 规律:一个数等于前两个数之和 //计算斐波那契数列(Fibonacci)的第n个值 public class Fibonacci{ public static void main(String args[]){ int n = Integer.parseInt(args[0]); int n1 = 1;//第一个数 int n2 = 1;//第二个数 int sum = 0;//和 if(n<=0){ System.out.println("参数错误!"); return; } if(n<=2){ sum = 1; }else{ for(int i=3;i<=n;i++){ sum = n1+n2; n1 = n2; n2 = sum; } } System.out.println(sum); } } //计算斐波那契数列(Fibonacci)的第n个值 //并把整个数列打印出来 public class FibonacciPrint{ public static void main(String args[]){ int n = Integer.parseInt(args[0]); FibonacciPrint t = new FibonacciPrint(); for(int i=1;i<=n;i++){ t.print(i); } } public void print(int n){ int n1 = 1;//第一个数 int n2 = 1;//第二个数 int sum = 0;//和 if(n<=0){ System.out.println("参数错误!"); return; } if(n<=2){ sum = 1; }else{ for(int i=3;i<=n;i++){ sum = n1+n2; n1 = n2; n2 = sum; } } System.out.println(sum); } } 13、求1-1/3+1/5-1/7+1/9......的值。 a,求出前50项和值。 b,求出最后一项绝对值小于1e-5的和值。 15、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下: * *** ***** ******* ********* //打印金字塔图案 public class PrintStar{ public static void main(String args[]){ int col = Integer.parseInt(args[0]); for(int i=1;i<=col;i++){//i表示行数 //打印空格 for(int k=0;k100*Math.random()); System.out.print(arrayNumber[i]+" "); } System.out.println(); int max = arrayNumber[0]; int min = arrayNumber[0]; int sum = 0; for (int i =0; i arrayNumber[i]) min = arrayNumber[i]; //求最小值 sum += arrayNumber[i]; } System.out.println("其中 Max="+max+",Min="+min+",Sum="+sum+",Avg="+sum/10.0); } } 2.定义一个int型的一维数组,包含10个元素,分别赋值为1~10, 然后将数组中的元素都向前移一个位置, 即,a[0]=a[1],a[1]=a[2],…最后一个元素的值是原来第一个元素的值,然后输出这个数组。 3. 定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数, 将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。 4. (选做)承上题,将这40个成绩按照从高到低的顺序输出出来。 5,(选做)编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的值 为5,4,3,2,1。 6,要求定义一个int型数组a,包含100个元素,保存100个随机的4位数。再定义一个 int型数组b,包含10个元素。统计a数组中的元素对10求余等于0的个数,保存 到b[0]中;对10求余等于1的个数,保存到b[1]中,……依此类推。 class Remain{ public static void main( String[] args){ int[] a = new int[100]; //保存100个随机4位数到 a 中 for (int i = 0; i < a.length; i++){ a[i] = (int) (1000*Math.random()); } //统计 a 数组中的元素对 10 求余的各个的数目 int[] b = new int[10]; int k,sum; for (int j = 0; j < b.length; j++){ for (k=0,sum=0; k < a.length; k++){ if ((a[k]%10)==j) sum++; } b[j] = sum; System.out.printf("b[%d]=%d\n",j,b[j]); } } } 7,定义一个20*5的二维数组,用来存储某班级20位学员的5门课的成绩;这5门课 按存储顺序依次为:core C++,coreJava,Servlet,JSP和EJB。 (1)循环给二维数组的每一个元素赋0~100之间的随机整数。 (2)按照列表的方式输出这些学员的每门课程的成绩。 (3)要求编写程序求每个学员的总分,将其保留在另外一个一维数组中。 (4)要求编写程序求所有学员的某门课程的平均分。 class Student{ public static void main(String[] args ){ int[][] mark = new int[20][5]; // 给学生赋分数值,随机生成 for ( int i = 0; ) } }//未完成 8,完成九宫格程序 在井字形的格局中(只能是奇数格局),放入数字(数字由),使每行每列以及斜角线的和都相等 经验规则:从 1 开始按顺序逐个填写; 1 放在第一行的中间位置;下一个数往右上角45度处填写; 如果单边越界则按头尾相接地填;如果有填写冲突,则填到刚才位置的底下一格; 如果有两边越界,则填到刚才位置的底下一格。 个人认为,可以先把最中间的数填到九宫格的最中间位置;再按上面的规则逐个填写,而且 填的时候还可以把头尾对应的数填到对应的格子中。(第 n 个值跟倒数第 n 个值对应,格局上以最中 间格为轴心对应) 这样就可以同时填两个数,效率比之前更高;其正确性有待数学论证(但多次实验之后都没发现有错)。 九宫格的 1 至少还可以填在另外的三个位置,只是接下来的填写顺序需要相应改变; 再根据九宫格的对称性,至少可以有8种不同的填写方式 import java.util.Scanner; class NinePalace{ public static void main(String[] args){ // 定义 N 为九宫格的行列数,需要输入 System.out.println("请输入九宫格的行列规模(只能是奇数的)"); Scanner n = new Scanner(System.in); int N; //判断格局是否奇数 (可判断出偶数、负数 及小数) double d; while (true){ d = n.nextDouble(); N = (int)d; if ((d-N)>1.0E-4||N%2==0||N<0) {System.out.println("输入出错,格局只能是正奇数。请重新输入");} else break; } //老师的九宫格填写方法 int[][] result = new int[N][N]; //定义保存九宫格的数组 int row = 0; //行 初始位置 int col = N/2; //列 初始位置,因为列由0开始,故N/2是中间位置 for (int i=1; i<=N*N; i++){ result [row][col] = i; row--; col++; if (row<0&&col>=N){col--;row+=2;} //行列都越界 else if (row<0){ row = N-1;} //行越界 else if (col>=N){col = 0;} //列越界 else if (result[row][col] != 0){col--;row+=2;} //有冲突 } //打印出九宫格 for (int i=0; i=N){col = 0;} //列越界 else if (result2[row][col] != 0){col--;row+=2;} //有冲突 //这方法不可能出现行列两边都越界的情况,详情需要数学论证 } System.out.println(); //再次打印出九宫格,以对比验证 for (int i=0; i100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是? public class PrimeTest{ public static void main(String args[]){ for(int i=0;i<100;i++){ int num = (int)(Math.random()*1000); PrimeTest t = new PrimeTest(); if(t.isPrime(num)){ System.out.println(num+" 是素数!"); }else{ System.out.println(num+" 不是素数!"); } System.out.println(); } } public boolean isPrime(int num){ for(int i=2;i<=num/2;i++){ if(num%i==0){ System.out.println(num+"第一个被"+i+"整除!"); return false; } } return true; } } 冒泡排序法: //按从大到小的排序 int tmp = a[0]; for (int i=0; i < a.length; i++){ for (int j=0; j < a.length - i -1; j++){ if (a[j] < a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } day06 练习 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名和生日月份。 方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日, 则公司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪 HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160 小时的部分按照1.5倍工资发放 属性:每小时的工资、每月工作的小时数 SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定 属性:月销售额、提成率 BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员, 工资由底薪加上销售提成部分 属性:底薪。 public class TestEmployee{ public static void main(String[]args){ Employee[] es = new Employee[5]; es[0] = new Employee("赵君",2); es[1] = new SalariedEmployee("宋婕", 1, 8000); es[2] = new HourlyEmployee("王超", 5, 10, 300); es[3] = new SalesEmployee("秋娥", 2, 200000, 0.05); es[4] = new BaseSalarySalesEmployee("郭镫鸿", 1, 1000000, 0.1, 10000); int month = 2;//本月为2月 System.out.println("宇宙集团"+month+"月工资表:"); for(int i=0; i100; } return 0; } } class SalariedEmployee extends Employee{ private double salary; public SalariedEmployee(String name, int birth, double salary){ super(name, birth); this.salary = salary; } public double getSalary(int month){ return salary + super.getSalary(month); } } class HourlyEmployee extends Employee{ private double hourSalary; private int hour; public HourlyEmployee(String name, int birth, double hourSalary, int hour){ super(name, birth); this.hourSalary = hourSalary; this.hour = hour; } public double getSalary(int month){ if(hour<=160){ return hourSalary*hour+super.getSalary(month); }else{ return 160*hourSalary+(hour-160)*hourSalary*1.5+super.getSalary(month); } } } class SalesEmployee extends Employee{ private double sales; private double pre; public SalesEmployee(String name, int birth, double sales, double pre){ super(name, birth); this.sales = sales; this.pre = pre; } public double getSalary(int month){ return sales*pre+super.getSalary(month); } } class BaseSalarySalesEmployee extends SalesEmployee{ private double baseSalary; public BaseSalarySalesEmployee(String name, int birth, double sales, double pre, double baseSalary){ super(name, birth, sales, pre); this.baseSalary = baseSalary; } public double getSalary(int month){ return baseSalary+super.getSalary(month); } } /** * 在原有的雇员练习上修改代码 * 公司会给SalaryEmployee每月另外发放2000元加班费,给 * BasePlusSalesEmployee发放1000元加班费 * 改写原有代码,加入以上的逻辑 * 并写一个方法,打印出本月公司总共发放了多少加班费 * @author Administrator * */ public class EmployeeTest { /** * @param args */ public static void main(String[] args) { Employee e[] = new Employee[4]; e[0] = new SalariedEmployee("魏威",10,5000); e[1] = new HourlyEmployee("段利峰",8,80,242); e[2] = new SalesEmployee("林龙",11,300000,0.1); e[3] = new BasedPlusSalesEmployee("华溪",1,100000,0.15,1500); for(int i=0;i100; return result; } public String getName(){ return name; } public int getAddtionalSalary(){ return 0; } } class SalariedEmployee extends Employee{ private int salaryPerMonth; public SalariedEmployee(String name,int birth,int salaryPerMonth){ super(name,birth); this.salaryPerMonth = salaryPerMonth; } public int getSalary(int month){ return this.salaryPerMonth + super.getSalary(month)+ this.getAddtionalSalary(); } public int getAddtionalSalary(){ return 2000; } } class HourlyEmployee extends Employee{ private int salaryPerHour; private int hoursPerMonth; public HourlyEmployee(String name,int birth,int salaryPerHour,int hoursPerMonth){ super(name,birth); this.salaryPerHour = salaryPerHour; this.hoursPerMonth = hoursPerMonth; } public int getSalary(int month){ int result = 0; if(this.hoursPerMonth<=160){ result = hoursPerMonth*salaryPerHour; }else{ result = 160*salaryPerHour + (int)((hoursPerMonth-160)*1.5*salaryPerHour); } return result+super.getSalary(month); } } class SalesEmployee extends Employee{ private int sales; private double rate; public SalesEmployee(String name,int birth,int sales,double rate){ super(name,birth); this.sales = sales; this.rate = rate; } public int getSalary(int month){ return (int)(sales*rate)+super.getSalary(month); } } class BasedPlusSalesEmployee extends SalesEmployee{ private int basedSalary; public BasedPlusSalesEmployee(String name,int birth,int sales,double rate,int basedSalary){ super(name,birth,sales,rate); this.basedSalary = basedSalary; } public int getSalary(int month){ return this.basedSalary+super.getSalary(month) + this.getAddtionalSalary(); } public int getAddtionalSalary(){ return 1000; } } 经典算法: 1. 某学校为学生分配宿舍,每6个人一间房(不考虑性别差异),问需要多少房? 答案: (x+5)/6 注意理解int类型数值。 2. 让数值在 0~9 之间循环。 public class test{ public static void main(String[] args){ int i=0; while(true){ i = (i+1)%10; System.out.println(i); } } } 作业: 1. 写一个数组类(放对象): 功能包括:添加(添加不限制多少项)、修改、插入、删除、查询 class MyArray{ private Object[] os = new Object[10]; public void add(Object o); public void set(int index, Object o); public void insert(int index, Objecto); public void remove(int index); public void remove(Object o); public Object get(int index); } public class TestMyArray{ public static void main(String[]args){ MyArray ma = new MyArray(); ma.add("aaa"); ma.add("bbb"); ma.add("ccc"); Object o = ma.get(1); Iterator it = ma.iterator(); while(it.hasNext()){ Object o1 = it.next(); System.out.println(o1); } } } 作业 10-08 1. 随机产生 20 个整数(10以内的),放入一个ArrayList中, 用迭代器遍历这个ArrayList 2. 并删除其中为 5 的数 3. 再产生 3 个整数,插入到位置 4 处 4. 把所有值为 1 的数都变成 10 import java.util.ArrayList; class ArrayList{ private Object[] os = new Object[20]; } public class TestArray{ public static void main(String[]args){ ArrayList a = new ArrayList(); ma.add("aaa"); ma.add("bbb"); ma.add("ccc"); Object o = ma.get(1); Iterator it = ma.iterator(); while(it.hasNext()){ Object o1 = it.next(); System.out.println(o1); } } } 1. 产生 3000 个 10 以内的数,放入 hashSet 2. 遍历它,打印每一个值 import java.util.HashSet; import java.util.Iterator; import java.util.Random; public class TestHashSet { public static void main(String[] args) { Random r = new Random(); HashSet hs1 = new HashSet(); for(int i=0; i<3000; i++){ hs1.add(r.nextInt(10)); } Iterator it1 = hs1.iterator(); while(it1.hasNext()){ System.out.print(it1.next()+" "); } } } //由于 HashSet 不能重复,所以只有10个数在里面,按哈希排序 2 4 9 8 6 1 3 7 5 0 /* * 测试TreeSet 的比较器, * 在有自己的比较器的情况下,如何实现Comparable接口 */ import java.util.*; class Teacher{ int id; String name; int age; public Teacher() {} public Teacher(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) {this.id = id; } public String getName() { return name;} public void setName(String name) { this.name = name;} public int getAge() {return age;} public void setAge(int age) {this.age = age;} public int TeacherComparator(Object o){ Teacher t1 = (Teacher) o; if(t1.getId() > id){return 1;} else if (t1.getId() < id){return -1;} return 0; } } class TreeSet{ } class Test { public static void main(String[] args) { String s1 = new String("aaa"); String s2 = new String("bbb"); String s3 = new String("aaa"); System.out.println(s1==s3); System.out.println(s1.equals(s3)); HashSet hs = new HashSet(); hs.add(s1); hs.add(s2); hs.add(s3); Iterator it = hs.iterator(); while(it.hasNext()){ System.out.println(it.next()); } System.out.printf("%x\n",s1.hashCode()); System.out.printf("%x\n",s2.hashCode()); System.out.printf("%x\n",s3.hashCode()); } } 1. 在Map中,以name作Key,以Student类 作Velue,写一个HashMap import java.util.*; class Student{ int id; String name; int age; public Student() {} public Student( int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() {return id;} public void setId(int id) {this.id = id;} public String getName() {return name;} public void setName(String name) {this.name = name;} public int getAge() {return age;} public void setAge(int age) {this.age = age;} } class TestHashMap{ public static void main(String[] args) { HashMap hm = new HashMap(); Student s1 = new Student(1,"jacky",19); hm.put("jacky",s1); hm.put("tom",new Student(2,"tom",21)); hm.put("kitty",new Student(3,"kitty",17)); Iterator it = hm.keySet().iterator(); while(it.hasNext()){ Object key = it.next(); Student value = (Student) hm.get(key); System.out.println(key+":id="+value.id+",age="+value.age); } System.out.println("============================="); //比较 KeySet() 和 entrySet() 两种迭代方式 for(Iterator i1 = hm.entrySet().iterator(); i1.hasNext(); ) { Map.Entry me = (Map.Entry) i1.next(); Student s = (Student) me.getValue(); System.out.println(me.getKey()+": id="+s.id+" age="+s.age); } } } day13 homework 1. /********************************************************************************** 自己写一个栈: ( 先进后出 ) 建议底层用LinkedList实现 参照 java.util.Stack 方法: boolean empty() 测试堆栈是否为空。 E peek() 查看栈顶对象而不移除它。 E pop() 移除栈顶对象并作为此函数的值返回该对象。 E push(E item) 把项压入栈顶。 int search(Object o) 返回对象在栈中的位置,以 1 为基数。 ***************************************************************************************/ //不能用继承,因为它破坏封装。只需调用即可 import java.util.LinkedList; class MyStack{ private LinkedList list = new LinkedList(); public boolean empty() {return list.isEmpty();} public E peek() {return list.peek(); } public E pop() {return list.poll(); } public void push(E o) {list.addFirst(o); } //int indexOf(Object o) 返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。 public int search(Object o){return list.indexOf(o);} } 2. /*************************************************************************************** 定义以下类,完成后面的问题,并验证。 Exam类 考试类 属性: 若干学生 一张考卷 提示:学生采用HashSet存放 Paper类 考卷类 属性:若干试题 提示:试题采用HashMap存放,key为String,表示题号,value为试题对象 Student类 学生类 属性:姓名 一张答卷 一张考卷 考试成绩 Question类 试题类 属性:题号 题目描述 若干选项 正确答案 提示:若干选项用ArrayList AnswerSheet类 答卷类 属性:每道题的答案 提示:答卷中每道题的答案用HashMap存放,key为String,表示题号,value为学生的答案 问题:为Exam类添加一个方法,用来为所有学生判卷,并打印成绩排名(名次、姓名、成绩) ***************************************************************************************/ 3. /*************************************************************************************** 项目:商品管理系统 功能:增删改查 (可按各种属性查) 商品属性:名称、价格(两位小数)、种类 ***************************************************************************************/ day17 图形界面 1. 计算器 /*****************例题 画出计算器的界面***************************** 界面如下: 1 2 3 + 4 5 6 - 7 8 9 * 0 . = / *******************/ import java.awt.*; import javax.swing.*; class Calculator { public static void main(String[] args){ JTextField text = new JTextField(); JFrame f = new JFrame("计算器"); Font font = new Font("宋体", Font.BOLD, 25);//"宋体"想写成默认,则写“null” text.setFont(font); //定义字体 text.setHorizontalAlignment(JTextField.RIGHT);//令text的文字从右边起 text.setEditable(false);//设置文本不可修改,默认可修改(true) f.add(text, BorderLayout.NORTH);//Frame和Dialog的默认布局管理器是Border Layout ButtonActionListener listener = new ButtonActionListener(text);//事件反应在text中 JPanel buttonPanel = new JPanel();//设法把计算器键盘放到这个Jpanel按钮上 String op = "123+456-789*0.=/"; GridLayout gridlayout = new GridLayout(4,4,10,10); buttonPanel.setLayout(gridlayout);//把计算器键盘放到buttonPanel按钮上 for(int i=0; iJTextField textField; public ButtonActionListener(JTextField textField) { this.textField = textField; } public void actionPerformed(ActionEvent e) {//必须覆盖它的actionPerformed() textField.append("哈哈,放了几个字\n"); }} /*********************未实现计算器的具体功能*******************************/ 2. 扫雷游戏 3. 俄罗斯方块 day19 多线程 写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信。 注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。 在o.wait()之前不要忘了写o.notify()。 class Test{ public static void main(String[] args) { Printer p = new Printer(); Thread t1 = new NumberPrinter(p); Thread t2 = new LetterPrinter(p); t1.start(); t2.start(); } } class Printer{ private int index = 1;//设为1,方便计算3的倍数 //打印数字的构造方法,每打印两个数字,等待打印一个字母 public synchronized void print(int i){ while(index%3==0){try{wait();}catch(Exception e){}} System.out.print(" "+i); index++; notifyAll(); } //打印字母,每打印一个字母,等待打印两个数字 public synchronized void print(char c){ while(index%3!=0){try{wait();}catch(Exception e){}} System.out.print(" "+c); index++; notifyAll(); } } //打印数字的线程 class NumberPrinter extends Thread{ private Printer p; public NumberPrinter(Printer p){this.p = p;} public void run(){ for(int i = 1; i<=52; i++){ p.print(i); } } } //打印字母的线程 class LetterPrinter extends Thread{ private Printer p; public LetterPrinter(Printer p){this.p = p;} public void run(){ for(char c='A'; c<='Z'; c++){ p.print(c); } } } /*如果这题中,想保存需要打印的结果,可在Printer类里定义一个成员变量 String s = ""; //不写“”的话是null,null跟没有东西是不一样的,它会把null当成字符 =_= 然后在两个print()方法里面,while循环后分别加上 s = s + " "+i; 以及 s = s +" "+ c;*/
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑运算符 14 实例8 位运算符 15 实例9 移位运算符 16 实例10 转型运算符 17 2.3 其他形式 18 实例11 常量与变量 18 实例12 各种进制的转换 19 实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列出素数 29 实例18 Java中的递归 31 实例19 男生女生各多少人 32 实例20 求水仙花数 34 实例21 求任意一个正数的阶乘 35 实例22 求n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 求1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的所有偶数 41 实例28 如何判断回文数字 42 3.4 do…while语句 43 实例29 输出100之间的所有奇数 44 实例30 求最大的随机数 44 3.5 switch语句 45 实例31 判断字母分类 46 实例32 优良及差 47 实例33 打印任意一年日历 48 实例34 一年四季的划分 51 第2篇 Java数据处理 第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实例35 除0发生的算术异常(ArithmeticException) 54 实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37 数组元素类型不匹配异常(ArrayStoreException) 56 实例38 强制类型转换异常(ClassCastException) 56 实例39 索引越界异常(IndexOutOfBoundsException) 57 实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch捕获异常 65 实例46 try…catch捕获异常的实例 66 实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51 throw抛出异常实例一 72 实例52 throw抛出异常实例二 73 4.6 自定义异常 74 实例53 自定义异常实例一 74 实例54 自定义异常实例二 75 第5章 数组(教学视频:98分钟) 78 5.1 一维数组 78 实例55 一维数组的创建与使用 78 实例56 按相反的顺序输出 79 实例57 奇偶分组 80 实例58 找宝 81 实例59 寻找最小数 82 实例60 我的位置在哪里 83 实例61 复制数组 85 实例62 插入新元素 86 实例63 数组的合并 87 实例64 去除重复元素 88 实例65 数组求和计算 90 实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 快递报价单 99 5.3 数组的排序 101 实例74 冒泡排序法 102 实例75 数
第1篇 Java编程基础   第1章 Java开发环境的搭建(教学视频:9分钟) 2   1.1 理解Java 2   1.2 搭建Java所需环境 3   1.2.1 下载JDK 3   1.2.2 安装JDK 4   1.2.3 配置环境 5   1.2.4 测试JDK配置是否成功 7   实例1 开发第一个Java程序 7   第2章 Java基础类型与运算符(教学视频:39分钟) 9   2.1 基础类型 9   实例2 自动提升 9   实例3 自动转换 10   实例4 常用基础类型之强制转换 11   2.2 运算符 12   实例5 算术运算符 12   实例6 关系运算符 13   实例7 逻辑运算符 14   实例8 位运算符 15   实例9 移位运算符 16   实例10 转型运算符 17   2.3 其他形式 18   实例11 常量与变量 18   实例12 各种进制的转换 19   实例13 Java中的进制与移位运算符 22   第3章 条件控制语句(教学视频:75分钟) 26   3.1 if控制语句 26   实例14 判断输入的年份是否为闰年 26   实例15 抽奖活动 27   3.2 for语句 28   实例16 小九九乘法表 28   实例17 如何列出素数 29   实例18 Java中的递归 31   实例19 男生女生各多少人 32   实例20 求水仙花数 34   实例21 求任意一个正数的阶乘 35   实例22 求n的n次方 35   实例23 利用for循环输出几何图形 36   实例24 杨辉三角 38   3.3 while语句 39   实例25 求1到100之间的和 39   实例26 存上100元需要多少天 40   实例27 输出100之间的所有偶数 41   实例28 如何判断回文数字 42   3.4 do…while语句 43   实例29 输出100之间的所有奇数 44   实例30 求最大的随机数 44   3.5 switch语句 45   实例31 判断字母分类 46   实例32 优良及差 47   实例33 打印任意一年日历 48   实例34 一年四季的划分 51   第2篇 Java数据处理   第4章 异常处理(教学视频:62分钟) 54   4.1 编译时异常 54   实例35 除0发生的算术异常(ArithmeticException) 54   实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55   实例37 数组元素类型不匹配异常(ArrayStoreException) 56   实例38 强制类型转换异常(ClassCastException) 56   实例39 索引越界异常(IndexOutOfBoundsException) 57   实例40 空指针异常(NullPointerException) 58   实例41 数字格式转换异常(NumberFornatException) 59   实例42 字符串索引越界异常(StringIndexOutBounds) 60   实例43 操作错误(UnsupportedOperationException) 60   4.2 运行时异常 61   实例44 找不到指定类时发生的异常(ClassNotFoundException) 62   实例45 请求的方法不存在(NoSuchMethodException) 63   4.3 try…catch捕获异常 65   实例46 try…catch捕获异常的实例 66   实例47 try…catch…finally捕获异常的实例 67   实例48 try…catch嵌套捕获异常的实例 68   4.4 throws声明异常 69   实例49 throws声明异常实例一 69   实例50 throws声明异常实例二 70   4.5 throw抛出异常 72   实例51 throw抛出异常实例一 72   实例52 throw抛出异常实例二 73   4.6 自定义异常 74   实例53 自定义异常实例一 74   实例54 自定义异常实例二 75   第5章 数组(教学视频:98分钟) 78   5.1 一维数组 78   实例55 一维数组的创建与使用 78   实例56 按相反的顺序输出 79   实例57 奇偶分组 80   实例58 找宝 81   实例59 寻找最小数 82   实例60 我的位置在哪里 83   实例61 复制数组 85   实例62 插入新元素 86   实例63 数组的合并 87   实例64 去除重复元素 88   实例65 数组求和计算 90   实例66 求最大值、最小值和平均值 91   5.2 二维数组 92   实例67 二维数组的创建与使用 92   实例68 矩阵转置 93   实例69 奇数阶幻方 94   实例70 求方阵对角线之和 96   实例71 矩阵的加法 97   实例72 矩阵的减法 98   实例73 快递报价单 99   5.3 数组的排序 101   实例74 冒泡排序法 102   实例75 数组递增排序 103   实例76 部分数组递增排序 103   实例77 选择排序法 104   实例78 快速排序法 106   第6章 字符串(教学视频:138分钟) 108   6.1 字符串类String 108   实例79 创建字符串类 108   实例80 如何使用charAt()方法计算重复字符 109   实例81 按字母顺序比较大小 110   实例82 首尾相连 111   实例83 字符串间的比较 112   实例84 字符集的解码方法 113   实例85 寻找指定字符第一次出现的位置 114   实例86 寻找指定字符最后出现的位置 115   实例87 我究竟有多长 116   实例88 替换指定的字符 117   实例89 分割字符串 117   实例90 如何使用substring()方法截取子串 118   实例91 分解字符串 119   实例92 字母大小写转换 120   实例93 去除多余的空白 120   实例94 原始数组类型的String形式 121   实例95 Java合法标识符 122   实例96 显示一周各星期的名称 123   实例97 构造空心方框 124   实例98 这一天是星期几 125   实例99 大小写互换 127   实例100 输出指定范围的素数 128   实例101 我出现了几次 129   实例102 算术表达式求值器 129   实例103 字符串对齐调整器 137   实例104 字符串的加密 139   实例105 使用正则表达式验证电话号码的格式 141   6.2 字符串缓存类StringBuffer 143   实例106 创建字符串缓存类 143   实例107 提取单个字符 144   实例108 给指定字符赋值 145   实例109 插入新的字符 146   实例110 插入新的字符串 146   实例111 获取字符串的子串 147   实例112 删除指定的字符 148   实例113 倒置字符串 149   实例114 去除重复字符 149   实例115 检查是否是回文 151   第7章 输入/输出流(教学视频:116分钟) 152   7.1 文件和目录 152   实例116 显示文件的基本信息 152   实例117 显示目录的基本信息 153   实例118 在指定的目录下创建单个文件 156   实例119 在指定的目录下创建多个临时文件 158   实例120 删除指定目录下的文件 160   实例121 移动指定目录下的文件 163   实例122 文件搜索引挚 167   7.2 字节流 169   实例123 复制指定目录下的文件 170   实例124 显示文件中的内容 173   实例125 将数据保存到指定的文件中 175   实例126 将由键盘中录入的信息保存到文件中 176   实例127 一个文件变成多个小文件 178   实例128 多个小文件合成一个文件 181   实例129 统计指定文件中的字符个数 183   实例130 对象的序列化与反序列化 185   实例131 同时显示多个文件 187   实例132 生成zip压缩文件 189   实例133 解压缩zip文件 192   实例134 生成Excel文件 194   实例135 读取Excel文件中的内容 198   实例136 生成PDF文件 199   实例137 读取PDF文件中的内容 203   实例138 用iText生成Word文件 205   实例139 利用POI读取Word文件中的内容 208   7.3 字符流 209   实例140 按顺序创建文件 210   实例141 按顺序读取文件 211   实例142 追加文件内容 211   实例143 只显示文件中指定的字符 214   实例144 读取jar包文件 215   实例145 文件的加密/解密操作 217   实例146 复制图片 219   实例147 随机读写Java类文件 221   第3篇 Java面向对象编程   第8章 面向对象(教学视频:72分钟) 226   8.1 类 226   实例148 简单的通讯录类 226   实例149 简单的长度单位转换类 227   实例150 卡车和卡车司机之间的关系 229   实例151 双色球 231   8.2 成员变量和方法 236   实例152 使用类作为成员变量 236   实例153 构造方法 237   实例154 使用静态成员变量计算内存中实例化的对象数目 239   实例155 实现加减乘除的方法 240   8.3 面向对象的设计模式 241   实例156 Singleton单例模式 242   实例157 招聘(简单工厂模式) 243   实例158 同学聚会(工厂方法模式) 244   实例159 图书展(抽象工厂模式) 246   实例160 汽车适配器(Adapter适配器模式) 248   8.4 垃圾回收 250   实例161 垃圾回收的机制 250   第9章 面向对象的四大特征(教学视频:65分钟) 252   9.1 抽象 252   实例162 求自定义几何图形的面积和周长 252   实例163 使用抽象方法实现的支票夹 254   9.2 封装 257   实例164 世界小姐参赛资格 257   实例165 自定义复数类 261   9.3 继承 264   实例166 轿车与本田的关系 264   实例167 继承关系的加载顺序 266   实例168 如何访问同名的方法或变量 268   实例169 super()方法的使用 271   实例170 this方法的使用 274   实例171 一张考试成绩单 275   实例172 银行自动存取一体机 278   9.4 多态 284   实例173 饮食文化 284   实例174 使用构造方法的重载计算课程的GPA值 287   第10章 内部类与接口(教学视频:41分钟) 290   10.1 成员内部类 290   实例175 成员内部类的使用规范 290   实例176 猜谜 292   10.2 方法内部类 294   实例177 局部内部类的使用规范 294   实例178 奖学金的评分标准 295   10.3 匿名内部类 297   实例179 匿名内部类的使用规范 297   实例180 电话与移动电话 299   10.4 静态内部类 300   实例181 静态内部类的使用规范 300   实例182 苹果的来历 302   10.5 接口 303   实例183 求n的幂数与倍数 304   实例184 商品订单 306   实例185 多功能排序 310   第11章 Java常用类(教学视频:66分钟) 315   11.1 数学Math类 315   实例186 求圆周率∏值 315   实例187 求对数值 316   实例188 使用取整函数 317   11.2 Random类的使用 318   实例189 随机数 319   实例190 验证码 322   11.3 Date类和Calendar类 324   实例191 使用Date类获取系统的当前时间 324   实例192 使用DateFormat类获取系统的当前时间 325   实例193 使用GregorianCalendar类获取系统的当前时间 326   实例194 使用SimpleDateFormat类获取系统的当前时间 329   实例195 显示某年某月某一周的信息 330   实例196 显示某年某月的信息 332   实例197 时间的设置与获取 334   实例198 万年历(农历和阳历的互换) 337   11.4 Formatter类的使用 347   实例199 时间格式转换符的使用 347   实例200 数据格式转换符的使用 349   11.5 System类的使用 351   实例201 记录程序执行的时间 351   实例202 程序的退出 352   实例203 获取程序运行环境的信息 353   第4篇 Java高级开发技术   第12章 集合(教学视频:45分钟) 358   12.1 Set 358   实例204 利用HashSet删除学生 358   实例205 不重复的随机数序列 360   实例206 运用映射的相关类(Map) 363   实例207 运用集的相关类(Set) 365   12.2 List 368   实例208 增加所需的元素 368   实例209 Iterator迭代器的使用 370   实例210 谁是幸运儿 371   实例211 自定义Queue队列 373   实例212 List、Set与Array之间的相互转换 375   实例213 二分查找法的实现方法 377   实例214 模拟操作系统的进程调度 379   实例215 利用栈将字符串逆序输出 381   实例216 动态的数组链表 382   实例217 你能猜出鱼是谁的宠物吗? 387   实例218 使用Collections类对List的排序操作 393   实例219 LinkedList的添加删除操作 395   实例220 运用Vector 397   实例221 改变Properties文件中的键值 399   第13章 多线程编程(教学视频:121分钟) 405   13.1 多线程的五种基本状态 405   实例222 启动线程 405   实例223 参赛者的比赛生活(线程休眠唤醒) 407   实例224 资源搜索并下载(线程等待和通报) 410   实例225 模拟淘宝购物买卖双方交易问题 412   实例226 携子之手 与子偕老(join) 415   实例227 线程让步(Yield) 417   实例228 会走动的钟(多线程) 419   实例229 变形金刚中的守护神(守护线程) 424   实例230 查看JVM中所有的线程的活动状况 426   实例231 模仿网络快车下载工具下载文件 428   13.2 多线程的同步与互斥 436   实例232 多线程同步方法的实例 436   实例233 ATM存取一体机(线程同步互斥) 437   实例234 我的钱哪里去了 440   实例235 门锁打不开了(死锁) 444   实例236 门锁终于被打开了(解决死锁) 446   实例237 一个死锁的例子 448   13.3 线程的优先级 451   实例238 排座位(线程优先级) 451   实例239 赛车 454   13.4 定时器 458   实例240 定时器(Timer) 458   实例241 数字定时器 459   13.5 线程连接池 462   实例242 手术任务(线程池) 462   实例243 模拟人工服务台(线程连接池) 466   13.6 线程应用实例 471   实例244 下雪的村庄 472   实例245 小飞侠 474   实例246 飞流直下 477   实例247 多线程断点续传 479   实例248 滚动的珠子 485   实例249 余额查询 489   实例250 滚动的文字 492   实例251 漂浮效果 495   实例252 监视内存的使用情况 499   实例253 璀璨的星空 501   实例254 银行和超市业务的模拟 505   第14章 泛型(教学视频:43分钟) 511   14.1 泛型基础 511   实例255 一个关于泛型的简单例子 511   实例256 带两个类型参数的泛型 513   实例257 有界类型程序示例 514   实例258 通配符使用示例 515   实例259 泛型方法使用示例 516   实例260 泛型接口示例 518   实例261 泛型实现坐标打印 519   14.2 泛型类的继承 521   实例262 继承泛型类示例 521   实例263 继承非泛型类示例 522   实例264 泛型类的类型识别示例 523   实例265 强制类型转换示例 525   14.3 擦拭 526   实例266 无限界的擦拭 526   实例267 有限界的擦拭 527   14.4 集合泛型类 528   实例268 Hashtable的泛型化 528   实例269 多功能画笔 529   第15章 网络编程(教学视频:52分钟) 534   15.1 IP地址 534   实例270 获取计算机名与IP地址 534   实例271 获取网址的IP地址 535   实例272 判断两个网址的主机名是否一样 536   实例273 测试IP的类型 537   实例274 查找主机 538   实例275 主机所支持的协议 539   15.2 URL类的使用 540   实例276 使用URL访问网页 540   实例277 URL的组成部分 541   实例278 通过指定的URL可以获取网页的源代码 542   实例279 一对多通信模式 544   实例280 自制浏览器 549   实例281 扫描TCP端口 551   实例282 TCP协议服务器 552   实例283 TCP协议客户机 553   实例284 Socket连接信息 555   实例285 Echo服务的客户端是如何实现的? 556   实例286 检测本机的服务端口 558   实例287 下载的页面不丢失链接 559   实例288 如何对网页进行重新定向 560   实例289 在Internet上搜索对象 560   实例290 LAN使用代理服务器 562   实例291 BBS论坛服务器端 567   实例292 UDP报文的发送与接收 579   第16章 数据库技术(教学视频:38分钟) 583   实例293 加载JDBC驱动程序 583   实例294 通过JDBC对数据库进行查询 584   实例295 数据库更新 585   实例296 获取数据库的基本信息 586   实例297 获取数据库对SQL支持的信息 589   实例298 处理访问数据库出现的常见异常情况 591   实例299 在Servlet中连接数据库 593   实例300 数据分页显示 595   实例301 批处理 601   实例302 事物处理 604   实例303 调用存储过程 608   实例304 连接ODBC数据库 611   实例305 数据库中图片文件的存取 614   第17章 界面设计--Swing(教学视频:88分钟) 618   17.1 Swing组件介绍及应用 618   实例306 JFrame框架的应用 618   实例307 Border的使用 619   实例308 使用Icon组件显示一张图片 620   实例309 Icon接口的应用 621   实例310 JLabel组件 622   实例311 Icon应用到JLabel中 623   实例312 JButton的使用 624   实例313 在JButton上设置快捷键 625   实例314 设置默认按钮 626   实例315 使用JCheckBox组件 627   实例316 JCheckBox事件处理 629   实例317 JRadioButton的使用 630   实例318 JComboBox的使用 632   实例319 利用ComboModel构造JComboBox 633   实例320 DefaultComboBoxModel的使用 635   实例321 建立有图像的JComboBox 636   实例322 建立可自行输入的JComboBox 637   实例323 JComboBox的事件处理 638   实例324 JTextField组件的使用 640   实例325 使用JTextArea组件 641   17.2 页面布局及事件监听 642   实例326 BorderLayout版面布局 643   实例327 FlowLayout布局管理 644   实例328 应用GridLayout设计版面 645   实例329 如何使用BoxLayout布局管理器 647   实例330 使用ActionEvent监听组件 648   实例331 使用WindowAdapter实现鼠标事件 649   实例332 使用MouseMotionListener监听鼠标 650   实例333 使用KeyListener监听键盘 652   17.3 组件的综合应用 654   实例334 计算器 654   实例335 创建树菜单 657   实例336 在节点中显示详细信息 658   第18章 Applet小应用程序(教学视频:39分钟) 662   实例337 不断变大的文字 662   实例338 灯光扫描的效果 664   实例339 字体逐渐展开的效果 666   实例340 飞舞的气球 668   实例341 逐渐浮现的图片 671   实例342 火焰边框的特效 674   实例343 局部放大效果 677   实例344 水波荡漾的效果 679   实例345 漫天飞花 682   实例346 动感影集 685   实例347 彩虹字 688   实例348 多功能按键 690   第19章 多媒体与图像处理(教学视频:51分钟) 694   19.1 多媒体 694   实例349 测试音频播放器 694   实例350 测试视频播放器 696   实例351 视频反色效果 698   实例352 实现一个录音机 703   实例353 建立一个调色板 707   19.2 图像处理 710   实例354 在计算机内存中创建一个图像 710   实例355 会移动的图像 712   实例356 将图片进行180度旋转 714   实例357 处理图像的明暗度 716   实例358 如何将彩色图转化为灰度图 721   实例359 锐化和模糊图像 724   实例360 显示一个图像的轮廓 727   实例361 如何放大及拉伸图像 730   第20章 JSP开发技术(教学视频:62分钟) 735   20.1 JSP基础 735   实例362 网页版的9×9乘法口诀 735   实例363 Java Servlet小程序 737   实例364 Servlet对表单的处理过程 738   实例365 获取/修改JavaBeans中的内容 741   20.2 JSP程序设计 743   实例366 喜连大三元 743   实例367 运气对对碰 748   实例368 文字样式统计器 752   实例369 图形统计器 754   20.3 垃圾信息投诉站 756   实例370 创建投诉表单 756   实例371 保存投诉的内容 760   实例372 实现投诉站的后台操作 762   实例373 取消投诉内容 764   实例374 站内信 767   20.4 网站在线评估系统 769   实例375 创建评估问卷 769   实例376 实现评估的后台操作 771   实例377 查看评估结果 773   第5篇 Java综合案例   第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778   21.1 实例介绍 778   21.2 框架设计 779   21.2.1 项目的总体结构 779   21.2.2 搭建开发环境 779   21.2.3 确定项目工程目录 779   21.3 公用模块设计 780   21.4 客户端程序 780   21.4.1 客户端的工作流程 780   21.4.2 编写客户端的源程序 781   21.4.3 客户端源的程序解读 783   21.5 服务器端程序 785   21.5.1 服务器端的工作流程 785   21.5.2 编写服务器端的源程序 785   21.5.3 服务器端的源程序解读 788   21.6 小结 790   第22章 书店管理系统(教学视频:56分钟) 791   22.1 实例分析 791   22.2 系统设计 792   22.2.1 结构分析 792   22.2.2 搭建环境 792   22.2.3 创建目录 793   22.3 数据库设计 793   22.4 公用模块设计 795   22.4.1 data包中的类 795   22.4.2 util包中的类 798   22.5 用户登录模块 800   22.6 系统主界面 802   22.7 基础维护模块 804   22.7.1 图书维护 804   22.7.2 用户维护 811   22.8 借还管理模块 818   22.8.1 借书 818   22.8.2 还书 821   22.9 查询管理模块 824   22.9.1 图书查询 824   22.9.2 用户查询 826   22.10 系统管理模块 829   22.11 小结 831

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧