JAVA进阶16
间歇性混吃等死,持续性踌躇满志系列-------------第16天
1、桌球游戏小项目
①窗口加载
import javax.swing.*; public class BallGame extends JFrame { //窗口加载
void launchFrame() {
setSize(300, 300);
setLocation(100, 100);
setVisible(true);
} public static void main(String[] args) {
System.out.println("游戏体验");
BallGame game = new BallGame();
game.launchFrame();
}
}
窗口加载
运行结果图
②小球左右移动
注:图片加载不出可尝试用绝对路径
import javax.swing.*;
import java.awt.*; public class BallGame extends JFrame { Image ball = Toolkit.getDefaultToolkit().getImage("F:/Java/MyGame/Demo01/images/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("F:/Java/MyGame/Demo01/images/desk.jpg");
//小球的横坐标
double x = 100;
//小球的纵坐标
double y = 100;
//方向
boolean right = true; //画窗口的方法
public void paint(Graphics g) {
System.out.println("窗体被画了一次!");
g.drawImage(desk, 0, 0, null);
g.drawImage(ball, (int) x, (int) y, null); if (right) {
x += 10;
} else {
x -= 10;
}
//856是窗口宽度,40是桌子边框的宽度,30是小球的直径
if (x > 856-40-30) {
right = false;
}
//40是桌子边框的宽度
if (x < 40) {
right = true;
}
} //窗口加载
void launchFrame() {
setSize(856, 500);
setLocation(50, 50);
setVisible(true); //重画窗口,每秒画25次
while (true) {
repaint();
try {
Thread.sleep(40);
} catch (Exception e) {
e.printStackTrace();
} }
} public static void main(String[] args) {
System.out.println("游戏体验");
BallGame game = new BallGame();
game.launchFrame();
}
}
小球左右移动
运行结果图
③实现圆球上下弹动
import javax.swing.*;
import java.awt.*; public class BallGame01 extends JFrame { Image ball = Toolkit.getDefaultToolkit().getImage("F:/Java/MyGame/Demo01/images/ball.png");
Image desk = Toolkit.getDefaultToolkit().getImage("F:/Java/MyGame/Demo01/images/desk.jpg");
//小球的横坐标
double x = 100;
//小球的纵坐标
double y = 100; //弧度,此处就是60度
double degree = 3.14 / 3; //画窗口的方法
public void paint(Graphics g) {
System.out.println("窗体被画了一次!");
g.drawImage(desk, 0, 0, null);
g.drawImage(ball, (int) x, (int) y, null); x = x + 10 * Math.cos(degree);
y = y + Math.sin(degree); if (y > 500 - 40 - 30 || y < 40) {
degree = -degree;
}
if (x < 0 || x > 856) {
degree = 3.14 - degree;
}
} //窗口加载
void launchFrame() {
setSize(856, 500);
setLocation(50, 50);
setVisible(true); //重画窗口,每秒画25次
while (true) {
repaint();
try {
Thread.sleep(40);
} catch (Exception e) {
e.printStackTrace();
} }
} public static void main(String[] args) {
System.out.println("游戏体验");
BallGame01 game = new BallGame01();
game.launchFrame();
}
}
运行结果图
2、三元运算符
public class TestOperator01 {
public static void main(String[] args) {
// boolean b1 = true;
// boolean b2 = false;
// System.out.println(b1 & b2);
// System.out.println(b1 ^ b2);
// System.out.println(b1 || b2);
// System.out.println(!b2);
//
//三元运算符
int score = 80;
String type = score<60?"不及格":"及格";
System.out.println(type); //条件判断
if (score>60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
}
}
运行结果图
3、嵌套循环
import java.util.Scanner; public class TestOperator01 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
System.out.print(i+"\t");
}
System.out.println(" ");
}
}
}
运行结果图
4、嵌套循环打印九九乘法表
public class TestOperator01 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
运行结果图
5、循环输出1-1000之间能被5整除的数,且每行输出5个
public class TestOperator01 {
public static void main(String[] args) {
int h = 0;
for (int i = 1; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");
h++;
}
if (h==5){
System.out.println();
h=0;
}
}
}
}
运行结果图
JAVA进阶16的更多相关文章
- Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...
- Java进阶(三)多线程开发关键技术
原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...
- 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)
本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...
- Java进阶(三十四)Integer与int的种种比较你知道多少?
Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值 ...
- Java进阶(三十二) HttpClient使用详解
Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...
- Java进阶教程:使用Lombok提升开发效率
Java进阶教程:使用Lombok提升开发效率 Lombok Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO).它通过注释实现这 ...
- java进阶视频分享
更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
- [.net 面向对象程序设计进阶] (16) 多线程(Multithreading)(一) 利用多线程提高程序性能(上)
[.net 面向对象程序设计进阶] (16) 多线程(Multithreading)(一) 利用多线程提高程序性能(上) 本节导读: 随着硬件和网络的高速发展,为多线程(Multithreading) ...
随机推荐
- 使用FreeHttp强制登出微信公众号登陆状态(实现~原理)
概述 我们使用的部分网站设计成一旦登录即不允许用户手动退出,现实场景中是没有问题的 但如果是在测试或调试过程中就会有强制登出的需求 如果当前使用的是PC浏览器,您或许可以通过调试模式清除保持登录信息的 ...
- Bloom Filter(布隆过滤器)如何解决缓存穿透
本文摘抄自我的微信公众号"程序员柯南",欢迎关注!原文阅读 缓存穿透是什么? 关于缓存穿透,简单来说就是系统处理了大量不存在的数据查询.正常的使用缓存流程大致是,数据查询先进行缓存 ...
- nginx 的各种配置
负载均衡 以上是ip的负载均衡,主要是保证 固定ip地址访问到固定服务,如果不做ip的匹配,那么每次请求的机器都不相同,就会出现问题,sessionid 之类的问题 //修改 路由负载均衡不能写has ...
- 类Scanner
什么是Scanner类 一个可以解析基本类型和字符串的简单文本扫描器. 引用类型使用步骤 1:导包:使用import关键字导包,在类的所有代码之前导包,引入要使用的类型. java.lang包下的所有 ...
- Mysql外键约束--转载
链接:http://www.cnblogs.com/xuanan/p/7240923.html#undefined 一.外键约束 1.什么是外键? 外键指的是其他表中的主键,当做该表的外键. 2.创建 ...
- java接口测试入门
一.什么是接口 接口是前端和后端的数据通道 二.如何获取接口 1.开发不提供接口文档,通过抓包工具比如fiddler进行抓取,如下: 步骤一:设置浏览器(比如火狐)代理 步骤二:设置url过滤器,进入 ...
- 使用VScode配合chrome实现网页自动刷新
1.使用插件:livereload 2.VScode商店中搜索上述插件安装 3.Chrome商店中搜素上述插件安装 并设置允许访问文件网址: 4.在两方插件都打开的情况下,VScode中按下ctrl+ ...
- MT 互联网 面试标准
能力模型 业务理解(每项2分) java知识(每项2分) 网络知识(每项1分) 设计模式(每项3分) 数据库知识(每项2分) 框架知识(每项1分) 数据结构与算法(每项1分) 架构知识(每项3分) 操 ...
- python_正则表达式随笔
webpage_regex = re.search(r'span_ed7[\s\S]*', dd) [\s\S]* 匹配多行,转义字符 webpage_regex = re.compile('< ...
- 基于.NET平台的Ocelot网关框架教程汇总
Ocelot 框架是基于.NET 开发的 API 网关,API网关是系统内部服务暴露在外部的一个访问入口,类似于代理服务器,就像一个公司的门卫承担着寻址.限制进入.安全检查.位置引导等工作,我们可以形 ...