近期项目总结

14 篇文章 0 订阅

最近做了几个小项目:

1.画图板

2.五子棋

3.文件搜索器(包括按关键字搜索)

4.学生信息管理系统(主要是集合框架的简单应用)

5.多线程的简单应用

总的说来,这几个项目只是实现了一些小小的功能,还有很大的改进空间。

通过这几个项目,进一步的熟悉了Java中的类及其一些方法的作用及使用。

下面说说比较重要的几点:

1.传参数:当需要把一个类A的参数传到类B时,可以重载类B的构造方法。例:

//构造方法,用来接收外部传来的参数
	public MyMouseListener(ShapePanel shapePanel, ColorPanel colorPanel,DrawPanel drawPanel, Graphics g) {
		this.shape_panel = shapePanel;
		this.color_panel = colorPanel;
		this.draw_panel = drawPanel;
		this.g2 = (Graphics2D) g;
		draw_panel.setList(list);//将list传递到主界面中去     这一个方法很特殊,在不同类中修改同一个数据结构
	}
2.画图板中,有些图形需要锁住个别点的坐标,sometimes  u need to rewiew it .

3.文件搜索器,主要是会使用方法。

File(String pathname)
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

/**
	 * 搜索指定路径下的文件信息(并且打印所有的文件的绝对路径) 
	 * 搜索文件的方法并且计数,然后把绝对路径显示到文本域中
	 * 
	 * @param path
	 *            用户输入的文件的绝对路径
	 */
	public static void query(String path) {
		// 根据得到的path构建一个File对象
		File file = new File(path);
		// 判断该path的文件是否存在
		if (file.exists()) {
			if (file.isFile()) {
				//如果是文件类型
				countFile++;
				//把文件的绝对路径显示出来
				jt_result.append(file.getAbsolutePath());
				jt_result.append("\r\n");//回车和换行是两步骤
				jl_countfile.setText(countFile+"");
			} else if (file.isDirectory()) {
				countDirection++;
				jl_countDirectionField.setText(String.valueOf(countDirection));
				jt_result.append(file.getAbsolutePath());
				jt_result.append("\n");
				//如果是文件夹类型,则得到该文件夹下的所有文件和文件夹
				File[] files = file.listFiles();
				for (int i = 0; i < files.length; i++) {
					//对该文件夹下的每一个文件或文件夹创建一个File对象,并让其调用这个方法,并且递归下去
					File f = files[i];
					query(f.getAbsolutePath());
				}
			}
		}
		//如果该路径不存在文件
		else {
			jt_result.append("路径无效");
		}
	}
若要用关键字进行搜索时,可以这样

if (path.contains(key)) //如果文件名包含key

4.用户的账号及其密码可以用集合框架的HashMap来存储,因为它的key和value是一一对应的,可以通过key值来得到相应的value,并且判断是否相等

else if(record.equals("注册")){
			//将用户输入的信息保存到map中
			String username = field_username.getText();
			String password = field_password.getText();
			if(username.equals("")||password.equals("")){
				JOptionPane.showMessageDialog(registerFrame, "输入信息不能为空!!!");
			}else{
				map.put(username,password);
				JOptionPane.showMessageDialog(registerFrame, "注册完成,请登陆!");
				System.out.println("map="+map);
			}
			
		}
//这一步是注册,并且立即把数据存放在map中,但是这只是在内存中,程序结束,用户注册的信息就没了。可以考虑用IO流,把数据写入硬盘,用的时候去读取即可

if(record.equals("login")){
			//验证用户输入的信息
			String key_username=text_acount.getText();
			String value_password=text_passWord.getText();
			//用户登陆会出现三种情况   用户不存在   密码错误   ok
			if(map.get(key_username)!=null){//说明用户存在
				if(map.get(key_username).equals(value_password)){//ok
					this.dispose();
					TheSecondUI secUI=new TheSecondUI();
				}else{
					JOptionPane.showMessageDialog(this, "输入的密码与用户名不匹配!");
				}
			}else{
				JOptionPane.showMessageDialog(this, "此用户不存在!");
			}
		}
//这是用户登录时候,判断用户的输入与map种的数据是否相符
5.多线程:线程创建有三种方式,但是本质上是两种

</pre><pre name="code" class="java">①class A entends Thread{
<pre name="code" class="java"><span style="white-space:pre">	</span>//重写方法
	public void run() {
<span style="white-space:pre">		</span>super.run();
		try {
			Thread.sleep(10);//注意这里,实现接口的要用thread类来调用,因为没有Thread类对象,而且sleep是静态方法
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

 
//(调用线程时)线程对象.start();
②public class ImplementsInterface implements Runnable{
	}
	public void count() {
		int i = 0;
		while (i<20) {
			i++;
			System.out.println(name+"="+i);
		}
	}
	
	//实现接口的抽象方法
	public void run() {
<span style="white-space:pre">		</span>count();
		try {
			Thread.sleep(10);//注意这里,实现接口的要用thread类来调用,因为没有Thread类对象,而且sleep是静态方法
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}
<pre name="code" class="java">//(调用线程时) new Thread(线程对象).start();
③通过内部类的方法
class A{
<span style="white-space:pre">	</span>Thread th = new Thread(){
<span style="white-space:pre">		</span>run(){//重写父类的run方法
<span style="white-space:pre">			</span>super.run();
<span style="white-space:pre">		</span>} 
<span style="white-space:pre">	</span>}
}

 其实本质上是一类,因为查看源代码可知,Thread类也是实现Runnable接口的。 


今年即将结束,新的一年,多多练习,打好基础,展望未来吧!喜羊羊


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值