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) ...
随机推荐
- springIOC原理加载过程
关于spring ,我以前学过很多次,也看过很多的书.以及博客,但是总是不得要领,这次我再学习一遍,在这里做点记录,如果不对的地方还请大家指正 Ioc: inverse of controller 控 ...
- Index-技术学习系列博客
计算机理论基础系列 B树的插入操作 前端系列 安装nodejs和webpack环境 构建vue项目 Json Web Token VO和DO转换(一) 工具汇总 缓存的实现和使用 框架学习系列 shi ...
- Azure DevOps
Azure DevOps https://azure.microsoft.com/zh-cn/services/devops/ It looks great!
- 【Linux】CentOS7下安装JDK详细过程
https://www.cnblogs.com/sxdcgaq8080/p/7492426.html
- python+ffmpeg切割视频
什么是ffmpeg 1.1 简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包 ...
- magento-2.2.6-1VM环境镜像-沙箱 - - 完全隔离的环境
打包处理下载地址: 链接:https://pan.baidu.com/s/1HX0WjWEN8Wc-4TDvgEWMog 提取码:s2ls 官方下载 文档 BITNAMI MAGENTO堆栈虚拟机 B ...
- mysql生成20万条数据(连表插入)
创建一个存储过程 DELIMITER $$ -- 设置定界符为$$,与';'意思相同,防止相同符号产生冲突 USE `yunkc_base1`$$ -- 使用数据库 DROP PROCEDURE IF ...
- <TCP/IP原理> (一)
1.协议和标准 2.标准化组织 3.Internet标准:RFC 4.Internet的管理机构 一.协议和标准 1.协议(Protocol) 一组控制数据通信的规则 三要素:语法(syntax).语 ...
- SAM求多个串的最长公共子串
又学到一个\(SAM\)的新套路QvQ 思路 考虑用其中的一个串建个\(SAM\),然后用其他的串在上面匹配,匹配时更新答案 首先有一个全局变量\(len\),表示当前已匹配的长度.假设目前在点\(u ...
- C语言博客作业06——结构体&文件
C语言博客作业06--结构体&文件 1.本章学习总结 1.1思维导图 1.2.本章学习体会 在本周的学习中,我们学习了关于结构体和文件的内容.结构体的本身并不难,但以结构体为基础的链表还是让我 ...