我们知道Java可以实现很多的功能,比如
1、Java可以做网站
Java可以用来编写网站,现在很多大型网站都用Jsp写的,JSP全名Java Server Pages,它是一种动态网页技术。
2、 Java可以做Android
Android是一种基于Linux的自由及开放源代码的操作系统,其源代码是Java。Java做安卓不单单是指系统,还有APP对于更多的开发人员来说,他们更多的时间是花在开发APP上面。
3、Java可以做游戏
或者你不知道,在以前诺基亚还很流行的时候,你玩的手机游戏有90%以上都是Java开发的。电脑上也有java开发的游戏,最经典的是:《我的世界》(minecraft ,简称MC),当今世界最具人气和影响力的网络游戏之一《英雄联盟》(简称lol)。
4、Java可以做软件
一般编程语言都可以做软件的,Java 也不例外,例如Eclipse,MyEclipse等知名Java开发工具.有关开发软件组件,可以了解Java Swing编程或者awt相关知识。
其实,Java还可以做出酷炫的小动画。下面,给大家贴出一个网上好玩的小动画(用Java编写的)。
上述动画,没有采用任何的图片,完全由画笔构造。气泡和鱼是随机生成并且可自由移动,乌龟也可以游来游去哦,你也可以拖动改变乌龟的位置。下面就来讲解一下代码。
1、 导入包(这部分常常会被大家忽略,其实这也是很重要的一部分)
这样在awt下定义的类、常量等你才可以使用
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
2、 主函数
public static void main(String[] args) {
JFrame w=new JFrame("乌龟游啊游"); //创建一个窗体对象
w.setSize(1720, 768); //设置窗口大小
w.setBackground(Color.LIGHT_GRAY); //设置背景颜色
Mypan mp=new Mypan(); //新建画笔
w.add(mp);
w.addMouseListener(mp);
w.addMouseMotionListener(mp);
w.addKeyListener(mp);
mp.addKeyListener(mp);
Thread ti=new Thread(mp); 新建一个进程
ti.start(); 运行进程
w.show(); 窗口显示
}
}
3、 实现Mypan类
class Mypan extends JPanel implements Runnable,MouseListener,
MouseMotionListener,KeyListener{//这里要设置监听
int x=300;//乌龟的初始坐标
int y=100;
int[] m=new int[50];//气泡
int[] n=new int[50];
int[] q=new int[50];
int[] a=new int[300];//海水
int[] b=new int[300];
int[] c=new int[10];//金鱼
int[] d=new int[10];
int f=0;//o就是右下,如果是1就是左下,2就是左上,3就是右上
Mypan(){ 初始化
for(int i=0;i<300;i++){//设置海浪的随机
}
for(int j=0;j<50;j++){//设置气泡的随机
}
for(int k=0;k<10;k++){//设置金鱼的随机
}
}
public void paintComponent(Graphics g){
// 实现paintComponent()函数
super.paintComponent(g);
this.setBackground(Color.cyan);
for(int j=0;j<50;j++){//画气泡
}
for(int k=0;k<10;k++){//画金鱼
}
if(fan==true){
if(mov==true){
}
else{ //如果乌龟不动,设置乌龟的头
}
}
else{
}
if(fan==true){
if(mov==true){
}
else{
}
}else{
}
if(fan==true){
if(mov==true){
}else{
}
}else{
}
if(fan==true){
if(mov==true){
}else{
}
}else{
}
}
public void run(){ //这段
while(true){
ga++;
if(ga>20){
ga=0;
f(mov==true){
mov=false;
}else {
mov=true;
}
}
以下为控制乌龟方向。
if(f==0){
x++;
y++;
}
if(f==1){
x--;
y++;
}
此处省略,,,,,,
for(int i=0;i<300;i++){
a[i]--;
if(a[i]<0){
a[i]=1720;
}
}
for(int j=0;j<50;j++){
n[j]--;
if(n[j]<2){
n[j]=765;
}
}
for(int k=0;k<10;k++){
c[k]=c[k]+2;
if(c[k]>1720){
c[k]=0;
}
}
try{
Thread.sleep(20); 休眠20秒
}catch(Exception e){}
repaint(); 重新绘制
}
}
4、用到的方法和逻辑
(1)确定所需绘画工具,如画笔Mypan,窗口JFrame
(2)为窗口添加鼠标监听、键盘监听—addMouseListener()。
(3)启动进程绘制图画(包括气泡、小鱼、乌龟、水草)
其中气泡、小鱼利用随机函数给出位置信息和大小。
乌龟只需考虑移动时不出边框,并且在点击时变换效果
(4)显示窗口。
以上内容就是本节Java教程的主要内容,感兴趣的同学一定要亲自动手做一下啊,你可以看到有趣的金鱼游动画面,想要完整代码的同学可以在评论区留言“金鱼完整代码”,老司机就会带你上路哦。
能给一个Java下载地址吗
不太懂
下面贴出完整代码。
package com.cn; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class WangBa { public static void main(String[] args) { JFrame w=new JFrame("乌龟游啊游"); w.setSize(1720, 768); w.setBackground(Color.LIGHT_GRAY); Mypan mp=new Mypan(); w.add(mp); w.addMouseListener(mp); w.addMouseMotionListener(mp); w.addKeyListener(mp); mp.addKeyListener(mp); Thread ti=new Thread(mp); ti.start(); w.show(); } } class Mypan extends JPanel implements Runnable,MouseListener,MouseMotionListener,KeyListener{//这里要设置监听 int x=300;//乌龟的初始坐标 int y=100; int[] m=new int[50];//气泡 int[] n=new int[50]; int[] q=new int[50]; int[] a=new int[300];//海水 int[] b=new int[300]; int[] c=new int[10];//金鱼 int[] d=new int[10]; int f=0;//o就是右下,如果是1就是左下,2就是左上,3就是右上 int ga=0; boolean fan=true; boolean mov=true; Mypan(){ for(int i=0;i<300;i++){//设置海浪的随机 a[i]=(int)(Math.random()*1720); b[i]=(int)(Math.random()* 768); } for(int j=0;j<50;j++){//设置气泡的随机 m[j]=(int)(Math.random()*1720); n[j]=(int)(Math.random()* 768); q[j]=(int)(Math.random()*35+4); } for(int k=0;k<10;k++){//设置金鱼的随机 c[k]=(int)(Math.random()*1720); d[k]=(int)(Math.random()* 268+450);//金鱼一般在底部运动 } } public void paintComponent(Graphics g){ super.paintComponent(g); this.setBackground(Color.cyan); for(int j=0;j<50;j++){//画气泡 g.setColor(Color.blue); g.fillOval(m[j], n[j], q[j], q[j]); g.setColor(Color.white); g.fillOval(m[j]+3,n[j]+3,q[j]-4,q[j]-4); } g.setColor(Color.green); g.fillOval(80,600,20,200); g.fillOval(70, 650, 200, 200); g.setColor(Color.cyan); g.fillOval(80, 670, 200, 200); g.setColor(Color.green); g.fillOval(40, 650, 50, 50); g.setColor(Color.cyan); g.fillOval(30, 670, 50, 50); g.setColor(Color.green); g.fillOval(150,500,25,300); g.fillOval(140, 650, 200, 300); g.setColor(Color.cyan); g.fillOval(150, 670, 200, 200); g.setColor(Color.green); g.fillOval(110, 650, 50, 50); g.setColor(Color.cyan); g.fillOval(100, 670, 50, 50); for(int k=0;k<10;k++){//画金鱼 g.setColor(Color.black); g.fillOval(c[k], d[k], 20, 15); g.setColor(Color.cyan); g.fillOval(c[k]-10, d[k], 20, 15); g.setColor(Color.orange); g.fillOval(c[k]+15, d[k]-10, 50, 30); g.setColor(Color.black); g.fillOval(c[k]+45, d[k]-5, 5, 10); g.setColor(Color.red); g.fillOval(c[k]+63, d[k]+3, 5, 8); } if(fan==true){ if(mov==true){ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟的头 g.fillOval(x, y, 70, 100); g.setColor(Color.BLACK); g.fillOval(x+10, y+30, 10, 10); g.fillOval(x+50, y+30, 10, 10); }else{ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟的头 g.fillOval(x, y, 70, 120); g.setColor(Color.BLACK); g.fillOval(x+10, y+30, 12, 12); g.fillOval(x+50, y+30, 12, 12); g.setColor(Color.red); g.fillOval(x+30, y, 8, 5); } }else{ g.setColor(Color.getHSBColor(30,20,50));//乌龟的头 g.fillOval(x, y, 70, 100); g.setColor(Color.black); g.drawOval(x+10, y+30, 20, 20); g.drawOval(x+40, y+30, 20, 20); g.setColor(Color.white); g.fillOval(x+10, y+30, 20, 20); g.fillOval(x+40, y+30, 20, 20); g.setColor(Color.black); g.fillOval(x+8, y+30, 15, 15); g.fillOval(x+38, y+30, 15, 15); g.setColor(Color.red); g.fillOval(x+25, y+50, 20, 10); } if(fan==true){ if(mov==true){ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟左shang腿 g.fillOval(x-90, y+60, 70, 70); }else{ g.setColor(Color.getHSBColor(169, 40, 3));//龟左上腿 g.fillOval(x-80, y+70, 70, 70); } }else{ g.setColor(Color.getHSBColor(30, 20, 50));//龟左上腿 g.fillOval(x-80, y+70, 60, 60); } if(fan==true){ if(mov==true){ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟右上腿 g.fillOval(x+90, y+50, 70, 70); }else{ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟右上腿 g.fillOval(x+80, y+70, 70, 70); } }else{ g.setColor(Color.getHSBColor(30, 20, 50));//乌龟右上腿 g.fillOval(x+80, y+70, 60, 60); } if(fan==true){ if(mov==true){ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟左下腿 g.fillOval(x-80, y+220, 70, 70); }else{ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟左下腿 g.fillOval(x-90, y+210, 70, 70); } }else{ g.setColor(Color.getHSBColor(30, 20, 50));//乌龟左下腿 g.fillOval(x-80, y+220, 60, 60); } if(fan==true){ if(mov==true){ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟右下腿 g.fillOval(x+80, y+220, 70, 70); }else{ g.setColor(Color.getHSBColor(169, 40, 3));//乌龟右下腿 g.fillOval(x+90, y+210, 70, 70); } }else{ g.setColor(Color.getHSBColor(30, 20, 50));//乌龟右下腿 g.fillOval(x+80, y+220, 60, 60); } //g.fillOval(arg0, arg1, arg2, arg3) if(fan==true){ if(mov==true){ g.setColor(Color.getHSBColor(169, 40, 3));//龟尾巴 g.fillOval(x, y+290, 60, 80); g.setColor(Color.cyan); g.fillOval(x+20, y+300, 60, 80); }else{ g.setColor(Color.getHSBColor(169, 40, 3));//龟尾巴 g.fillOval(x, y+290, 60, 80); g.setColor(Color.cyan); g.fillOval(x-20, y+300, 60, 80); } }else{ g.setColor(Color.getHSBColor(30, 20, 50));//龟尾巴 g.fillOval(x, y+290, 60, 80); g.setColor(Color.cyan); g.fillOval(x-20, y+300, 60, 80); } if(fan==true){ g.setColor(Color.GREEN);//龟盖 g.fillOval(x-66, y+69, 200, 230); g.setColor(Color.black); g.drawOval(x-65, y+70, 200, 230); g.setColor(Color.black);//龟盖 g.drawLine(x+5, y+130, x+75, y+130); g.drawLine(x+5, y+130, x-30, y+200); g.drawLine(x-30, y+200, x+5, y+270); g.drawLine(x+5, y+270, x+75, y+270); g.drawLine(x+75, y+270, x+100, y+200); g.drawLine(x+100, y+200, x+75, y+130); g.drawLine(x+5, y+130, x-5, y+80); g.drawLine(x+75, y+130,x+100,y+95); g.drawLine(x-30, y+200, x-64, y+200); g.drawLine( x+5, y+270,x-5,y+290); g.drawLine(x+75, y+270, x+95, y+280); g.drawLine(x+100, y+200, x+130, y+200); }else{ g.setColor(Color.getHSBColor(169, 40, 3));//龟盖 g.fillOval(x-66, y+69, 200, 230); g.setColor(Color.black); g.drawOval(x-65, y+70, 200, 230); g.setColor(Color.black);//龟盖 g.drawLine(x+5, y+130, x+75, y+130); g.drawLine(x-10, y+82, x+5, y+130); g.drawLine( x+75, y+130, x+100, y+95); g.drawLine(x-67,y+200,x+135,y+200); g.drawLine(x+5,y+250,x+75,y+250); g.drawLine(x+5,y+250,x-20,y+278); g.drawLine(x+100,y+275,x+75,y+250); g.drawLine(x+40, y+70, x+40, y+300); } //g.draw g.setColor(Color.BLUE);//画海浪 for(int i=0;i<300;i++){ g.drawString("~~~~", a[i], b[i]); } } public void run(){ while(true){ ga++; if(ga>20){ ga=0; if(mov==true){ mov=false; }else { mov=true; } } if(f==0){ x++; y++; } if(f==1){ x--; y++; } if(f==2){ x--; y--; } if(f==3){ x++; y--; } if(x>1200){ if(f==0){ f=1; }else{ f=2; } } if(y>400){ if(f==1){ f=2; }else{ f=3; } } if(x<0){ if(f==1){ f=0; }else{ f=3; } } if(y<40){ if(f==3){ f=0; }else{ f=1; } } for(int i=0;i<300;i++){ a[i]--; if(a[i]<0){ a[i]=1720; } } for(int j=0;j<50;j++){ n[j]--; if(n[j]<2){ n[j]=765; } } for(int k=0;k<10;k++){ c[k]=c[k]+2; if(c[k]>1720){ c[k]=0; } } try{ Thread.sleep(20); }catch(Exception e){} repaint(); } } public void mouseClicked(MouseEvent arg0) { // TODO 自动生成方法存根 } public void mouseEntered(MouseEvent arg0) { // TODO 自动生成方法存根 } public void mouseExited(MouseEvent arg0) { // TODO 自动生成方法存根 } public void mousePressed(MouseEvent e) { // TODO 自动生成方法存根 if(e.getX()>x-18&&e.getY()>y&&e.getX()<x+80&&e.getY()<y+300) { fan=false; } } public void mouseReleased(MouseEvent e) { // TODO 自动生成方法存根 fan=true; } public void mouseDragged(MouseEvent e) { // TODO 自动生成方法存根 x = e.getX()-30 ; y = e.getY()-200 ; this.repaint() ; } public void mouseMoved(MouseEvent e) { // TODO 自动生成方法存根 } public void keyPressed(KeyEvent e) { // TODO 自动生成方法存根 if(e.getKeyCode()==39){ } } public void keyReleased(KeyEvent e) { // TODO 自动生成方法存根 } public void keyTyped(KeyEvent e) { // TODO 自动生成方法存根 } }
这个有意思。。。。金鱼完整代码
我来领取了,-------金鱼完整代码