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) ...
随机推荐
- 程序员如何避免996、icu?欢迎来讨论一下。
最近996icu火了,我以前就被996害了.现在还没缓过来,可能是自己体质比较弱吧. 以前的事就不说了,说说现在的想法吧.那么程序员如何才能避免996icu呢? 有两个基本因素: 1. 实现一个功能, ...
- 单列集合类的根接口Collection
Collection接口 Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合.JDK 不提供此接 ...
- django开发新手教程(原创)
为了帮助新手简单高效解决django开发的问题,从而写了这么一篇,随便转载! 本人用的是windows10操作系统 #联网安装 ==指定版本号 我在自定义的www文件夹安装C:\Users\ ...
- windows部署jenkins持续集成maven测试项目不能访问测试报告
买了一台阿里云的服务器用于练习maven test项目,系统版本wiondows server 2012,将jenkins war包部署在Tomcat服务器上,项目构建后,生成的报告在C:\Windo ...
- 使用队列实现栈(2)(Java)
class MyStack { private Queue q1; private Queue q2; public MyStack(int size) { this.q1 = new Queue(s ...
- 二叉树最近公共祖先(LeetCode)
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖先且 x 的深 ...
- ES6 对象增强
对象字面量语法扩展: 1, 属性初始化语法简写:给一个属性赋一个变量值,如果变量名和属性名相同,可以省略变量名和冒号,直接写属性名,js引擎在执行代码的时候,自动查找 和属性命名相同的变量并赋值. l ...
- SPFA求最短路——Bellman-Ford算法的优化
SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环.SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE), ...
- Luogu4495 [HAOI2018] 奇怪的背包 【扩展欧几里得算法】
题目分析: 首先打个暴力求一下$10^9$以内因子最多的数的因子个数,发现只有$1344$个. 由于有$ax+by=k*(a,b)$和2017年noip的结论,所以我们可以发现对于任意多个数$a_1, ...
- 实用HTML5游戏资源
awesome games Web-First游戏引擎协同构建令人惊叹的HTML5可视化和游戏 HTML5游戏开发者和技术传播者,华沙,波兰- @EnclaveGames独立工作室的创始人 代表作 ...