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) ...
随机推荐
- 编译安装redis-5.0.4
编译安装为redis官方推荐安装方式. 本例中使用linux版本为:CentOS Linux release 7.0.1406 (Core),Basic Web Server 一.安装依赖包 yum ...
- 【原创】小说:我是一条DQL
SQL执行流程图如下 本文改编自<高性能Mysql>,烟哥用小说的形式来讲这个内容. 序章 自我介绍 我是一条sql,就是一条长长的字符串,不要问我长什么样,因为我比较傲娇. 额~~不是我 ...
- 随心测试_软测基础_001<说在开始_测试理念>
- JS 转换HTML转义符
JS转换HTML转义符 //去掉html标签 1 2 3 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?& ...
- DAO层设计Junit测试
DAO层的设计: 在实际的开发中有一种项目的程序组织架构方案叫做MVC模式. MVC模式就是按照程序的功能将它们分成三层,分别是Modle层 (模型层).View(显示层).Controller(控制 ...
- kvm虚拟化介绍
一.虚拟化分类 1.虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互相 ...
- 电梯调度编写(oo-java编程)
第二单元的问题是写一个关于电梯调度的程序. 需要模拟一个多线程实时电梯系统,从标准输入中输入请求信息,程序进行接收和处理,模拟电梯运行,将必要的运行信息通过输出接口进行输出. 主要锻炼学生的多线程程序 ...
- MySQL实现按天统计数据的方法
一.首先生成一个日期表,执行SQL如下: CREATE TABLE num (i int); ), (), (), (), (), (), (), (), (), (); CREATE TABLE i ...
- (二)jdk8学习心得之Lambda表达式
二.Lambda表达式 1. 格式 (参数1,参数2,…,参数n)->{方法体} 注意: (参数1,参数2,...,参数n)要与方法接口中的参数一致,但是名字可以不一样. 此外,方法类型接口,有 ...
- Java数据库学习之模糊查询(like )
Java数据库学习之模糊查询(like ): 第一种方式:直接在SQL语句中进行拼接,此时需要注意的是parm在SQL语句中需要用单引号拼接起来,注意前后单引号之间不能空格 String sql = ...