会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134307个问题
JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 2761楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 2763楼

package com.bjsxt.array;

import java.util.Arrays;

public class TestGoods {
	
	
	
	
	public static void main(String[] args) {
 Goods g1=new Goods(1,"百战牌鼠标","BZ_001",99.21,0.9);
 Goods g2=new Goods(2,"键盘侠玩偶","WO_102",403.00,0.7);
 Goods g3=new Goods(3,"实战java程序设计","BK_001",89.00,0.8);
 Goods g4=new Goods(4,"高淇牌西装","GQ_XF_12",700.00,0.5);
 Goods g5=new Goods(5,"大米牌手机","DM_PH_13",900.00,0.3);
 Goods[] good=new Goods[5]; 
 good[0]=g1;
 good[1]=g2;
 good[2]=g3;
 good[3]=g4;
 good[4]=g5; 
 for(int i=0;i<good.length;i++) {
	 System.out.println(good[i].getId()+"\t"+good[i].getName()+"\t"+good[i].getXinghao()+"\t"+good[i].getPrice()+"\t"+good[i].getZhekou()+"\t");
 }
 System.out.println("==================");
 
 for(int i=0;i<good.length;i++) {
	 System.out.println(good[i].toString());
 }
 System.out.println("============");
for(int i=0;i<good.length;i++) {
	
	good[i].a(good[i].getPrice()*good[i].getZhekou());
	
	
}
 }
}


class Goods{
	private int id;
	private String name;
	private String xinghao;
	private double price;
	private double zhekou;
	public Goods() {}
	public  Goods(int id,String name,String xinghao,double price,double zhekou) {
		this.id=id;
		this.name=name;
		this.xinghao=xinghao;
		this.price=price;
		this.zhekou=zhekou;
	}
	public void a(double d) {
		while(d>100) {
			System.out.println(getId()+"\t"+getName()+"\t"+getXinghao()+"\t"+getPrice()+"\t"+getZhekou());
			break; 
		}
		
	
	}
	
	public String toString() {
		return getId()+"\t"+getName()+"\t"+getXinghao()+"\t"+getPrice()+"\t"+getZhekou();
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getXinghao() {
		return xinghao;
	}
	public void setXinghao(String xinghao) {
		this.xinghao = xinghao;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public double getZhekou() {
		return zhekou;
	}
	public void setZhekou(double zhekou) {
		this.zhekou = zhekou;
	}
	
}

这样写行吗  方法a和第三个for循环是老师 课上作业的最后一问

image.png

JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 2765楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 2770楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 2771楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 2772楼

老师你好,为什么我的gameframe加上双缓冲的代码之后,运行起来飞机不见了,只显示背景图案。

不加双缓冲的时候除了闪烁问题其他的都正常。

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MyGameFrame extends Frame {
    Image bg=GameUtil.getImage("images/bg.jpg");
    Image plane=GameUtil.getImage("images/plane.png");
    int count=0;
    int planex=100;

    @Override
    public void paint(Graphics g) {  //paint不需要在main方法调用,自动运行
        System.out.println("重画次数"+count );
        count++;
        g.drawImage(plane,planex,100,22,33,null);//飞机位置大小
        g.drawImage(bg,0,0,600,600,null);//背景位置大小
        planex+=1;//飞机位移
    }

    public void langFrame(){
        setTitle("planeWar");
        setSize(Constant.width,Constant.height);
        setLocation(400,50);
        setVisible(true);
        this.addWindowListener(new WindowAdapter() { //增加关闭窗口监听,这样用户可以点击右上角关闭图标,可以关闭游戏程序
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        new paintThread().start();  //启动重画窗口的线程
    }
    class paintThread extends Thread{//重画方法
        @Override
        public void run() {
            while (true){
               repaint();//内部类可以调用外部类的方法
                try {
                    Thread.sleep(50);//1s=1000ms.相当于一秒重画20次
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    //双缓冲
    private Image offScreenImage = null;

    public void update(Graphics g) {
        if(offScreenImage == null)
            offScreenImage = this.createImage(500,500);//这是游戏窗口的宽度和高度

        Graphics gOff = offScreenImage.getGraphics();
        paint(gOff);
        g.drawImage(offScreenImage, 0, 0, null);
    }
    public static void main(String[] args) {
        MyGameFrame gf=new MyGameFrame();
        gf.langFrame();//调用langFrame方法
    }

}


JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 2774楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/IDEA的使用和第一个java项目 2775楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637