苏木三少
错的不是你,而是这个世界。

JAVA项目桌球分析

如果忘了是那个可以点击看看————————————————————————传送门

下面我对上次项目进行一个简单的分析。

在项目开始之前,我们先创建两个文件夹,然后一个放我们的源码一个放我们的图片。

首先这里我们要对java的头文件 swing和awt有一定的了解知道他们是做什么,这里有一个很好的学校网站可以去看看————————————————传送门

Swing 是一个用于 Java GUI 编程(图形界面设计)的工具包(类库);换句话说,Java 可以用来开发带界面的 PC 软件,使用到的工具就是 Swing。

AWT(Abstract Window Toolkit,抽象窗口工具)是一套早期的 Java GUI 开发工具,Swing 也是在 AWT 的基础上发展起来的。

其次是我们的代码段。

JFrame是指一个计算机语言-java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。

Toolkit.getDefaultToolkit().getImage(“images/ball.png”);我们使用这条语句对项目背景进行定义。

其次是对图像进行多次画出。

public abstract boolean drawImage(Image img,
int x,
int y,
int width,
int height,
ImageObserver observer)绘制指定图像中已缩放到适合指定矩形内部的图像。
图像绘制在此图形上下文坐标空间的指定矩形内部,并且如果需要,则进行缩放。透明像素不影响该处已存在的像素。

此方法在任何情况下都立刻返回,甚至在整个图像没有为当前输出设备完成缩放、抖动或转换的情况下也是如此。如果当前的输出表示尚未完成,则 drawImage 返回 false。随着更多的图像可用,装入图像的进程将通过调用图像观察者的 imageUpdate 方法来通知它。

图像的缩放版本不一定立刻是可用的,因为已经为此输出设备构造了图像的非缩放版本。每种大小的图像可以被分别缓存,并由各自图像产生序列中的原始数据生成。

参数:
img – 要绘制的指定图像。如果 img 为 null,则此方法不执行任何动作。
x – x 坐标。
y – y 坐标。
width – 矩形的宽度。
height – 矩形的高度。
observer – 当转换了更多图像时要通知的对象。

这里我们背景图片不发生重新绘制,只要小球进行从新绘制,每次绘制我们都让他的位置发生变化。

x=x+10*Math.cos(degree);
y=y+10*Math.sin(degree);
if(y>5004030||y<40+40) {
degree =  degree;
}
if(x<0||x>8564030) {
degree = 3.14degree;
}

上面这两段代码控制小球的位置。其中我们定义degree为3.14/3;

用两条if语句控制小球不走出我们的界面。

void launchFrame() 创建launchFrame 方法来绘制我们的窗口大小、可见性、以及位置。

关于Thread有一个比较有趣的面试题。当你new 一个Thread的时候,直接调用它的run()方法,run()会执行在哪个线程? 答案是调用run()的线程,因为只有在调用start()之后,Java才会创建一个新的线程,然后新的线程再调用执行Java代码里面的run()。看如下代码,一个简单的实现:

 

Thread thread = new Thread(){
   public void run() {
    }
};
thread.start();
这时我们调用了重绘函数并用线程设置它的重绘速度。
下面是,进程、线程概念。

线程–什么是进程

进程–概念

要解释线程,就必须明白什么是进程。

什么是进程呢?

进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间。当用户再次点击左面的IE浏览器,又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。目前操作系统都支持多进程。

要点:用户每启动一个进程,操作系统就会为该进程分配一个独立的内存空间。

 

线程–概念

在明白进程后,就比较容易理解线程的概念。

什么是线程呢?

是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。线程有就绪、阻塞和运行三种基本状态。

线程

1、线程是轻量级的进程

2、线程没有独立的地址空间(内存空间)

3、线程是由进程创建的(寄生在进程)

4、一个进程可以拥有多个线程–>这就是我们常说的多线程编程

5、线程有几种状态:

a、新建状态(new)

b、就绪状态(Runnable)

c、运行状态(Running)

d、阻塞状态(Blocked)

e、死亡状态(Dead)

 

线程有什么用处

java程序中流传一句话,不会使用线程就别跟别人说自己学过java。目前绝大部分应用程序都会涉及到多并发的问题。只要应用程序涉及到并发,就离不开多线程编程。

 

线程–如何使用

在java中一个类要当作线程来使用有两种方法

1、继承Thread类,并重写run函数

2、实现Runnable接口,并重写run函数

因为java是单继承的,在某些情况下一个类可能已经继承了某个父类,这时在用继承Thread类方法来创建线程显然不可能java设计者们提供了另外一个方式创建线程,就是通过实现Runnable接口来创建线程。

赞(2) 打赏
有问题的朋友随时留言,或者加我为好友。我的QQ是805375353. <<苏木三少博客 » JAVA项目桌球分析

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    非技术的路过。

    repostone1年前 (2019-07-06)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

十年之约