绘图-初级、多线程-入门

一:  java 绘图坐标原点位于左上角,也就是说,绘图区域是在第四象限

二: 创建一个类(即画板类) 继承 Jpanel ,重写paint( )方法,在该方法里面使用Graphics g 画笔进行绘画。

1. MyPanel 对象就是一个画板

2. Graphics g 把 g 理解成一支画笔

3. Graphics 提供了很多绘图的方法

/画图片 drawImage(Image img, int x, int y, ..)

//1. 获取图片资源, /bg.png 表示在该项目的根目录去获取 bg.png 图片资源

// Image image = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/bg.png")); // g.drawImage(image, 10, 10, 175, 221, this);        //不理解可以查API文档

g.setFont(new Font("隶书", Font.BOLD, 50));//设置字体

三:主函数所在的类要继承 JFrame        //JFrame 对应窗口,可以理解成是一个画框

然后创建一个主函数所在类的构造器,在里面添加画板类

public DrawCircle() {//构造器,这里的类名就是主函数所在的类,前提要继承 JFrame.

//初始化面板 mp = new MyPanel();

//把面板放入到窗口(画框)

this.add(mp);

//设置窗口的大小

this.setSize(400, 300);

//当点击窗口的小×,程序完全退出.

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

//可以显示

}

四:绘图原理

两个重要方法:        paint(Graphics g)        repaint() //刷新组件外观。

注意:   repaint() 方法在你重写绘图完以后一定要记得添加!!

多线程

一:线程基本使用

继承 Thread类 或者 Runnable接口        重写两个里面的run()方法。

注意这两个是如何启动 start()方法。

区别:

没有多大区别,但是实现Runnable 接口,更适合,避免java的单继承机制。

二:线程常用方法:

1:setName() 设置线程名字        getName()返回线程名字

start() 启动线程        run()调用线程 run 方法        set或getProiority()设置或得到线程优先级

sleep() 让线程休眠(1000=1秒)        interrupt()中断休眠的线程,让其工作

join() 线程插队。插队成功,则会先执行完插入线程的所有任务。

线程状态转换图  (看文档)

三:

线程同步机制:即当有一个线程在对内存进行操作时候,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作,其他线程才能对该内存地址进行操作。

synchronized

1. public synchronized void sell() {} 就是一个同步方法 ,这时锁在 this 对象 , 也可以在代码块上写 synchronize ,同步代码块, 互斥锁还是在 this 对象

2. public synchronized static void m1() {} 锁是加在 SellTicket03.clas   即:同步方法(静态的)的锁为当前类本身

注意避免 死锁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值