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

package com.whygame;
import java.awt.*;
import java.awt.event.*;
import  static com.whygame.GameUtil.*;
public class whygameframe extends Frame {
    int x=100,y=100;//飞机的坐标
    Image bg =GameUtil.getImage("images/bg.jpg");

    Image palane=GameUtil.getImage("images/meinv .jpg" );
    Plane plane=new Plane(palane,100,100,1);
    class keymonitr extends KeyAdapter {
        @Override
        public void keyPressed(KeyEvent e) {
           plane.addDriection(e);
        }

        @Override
        public void keyReleased(KeyEvent e) {
           plane.relDriection(e);
        }
    }
   public void Launchframe(){

        this.setTitle("Ying ge 's 飞机大战");
        this.setVisible(true);//窗口默认不可见,设置为可见true
        this.setSize(FrameWidth,FrameHeight);
        this.setLocation(FrameWidth,FrameHeight);
        //增加关闭窗口的动作
       this.addWindowListener(new WindowAdapter() {
           @Override
           public void windowClosing(WindowEvent e) {
              System.exit(0);
           }
       });
       new PaintThread().start();
       //启动键盘监听
       this.addKeyListener( new keymonitr());
    }

    @Override
    public void paint(Graphics g) {
     g.drawImage(bg,0,0,FrameWidth,FrameHeight,null);
plane.drawMyself(g);

     /*  Color old=g.getColor();
        g.setColor(Color.PINK);
       g.drawLine(100,10,200,20);
       g.drawRect(300,300,300,300);
       g.drawOval(400,400,100,100);
       g.drawString("你好",300,300);
       g.setColor(old);
       g.drawLine(200,50,400,100);
*/
    }
    public static void main(String[]args) {
        long a1 = System.currentTimeMillis();
        whygameframe frame = new whygameframe();
        frame.Launchframe();
        long a2 = System.currentTimeMillis();
        System.out.println("共用时:" + (a2 - a1) + "ms");
    }
class PaintThread extends Thread{
    @Override
    public void run() {
       while(true){
           repaint();
           try {
               sleep(10);
           } catch (InterruptedException e) {
               e.printStackTrace();
           }
       }
    }
}
//解决屏幕闪烁问题
    private Image offScreenImage=null;
   public void update(Graphics g){
       if (offScreenImage==null){
           offScreenImage=this.createImage(FrameWidth,FrameHeight);
       }
       Graphics gOff=offScreenImage.getGraphics();
       paint(gOff);
       g.drawImage(offScreenImage,0,0,null);
   }
}
这是个什么错误,正常运行了几秒钟就不动了

image.png

JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 1577楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1578楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 1580楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1581楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1582楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 1585楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 1586楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/控制语句、方法、递归算法 1588楼

.1程序代码

package com.bjsxt.array;

import java.util.Arrays;

public class Test07数组 {   //二维数组的练习 使用二维数组的object存储整个数据
    public static void main(String[] args) {
        //每一个一维数组代表一个一维数据
        Object emp0[] = {1001,"高小一","讲师",18,"2019-9-9"};
        Object emp1[] = {1002,"高小二","程序员",20,"2020-1-1"};
        Object emp2[] = {1003,"高小三","教师",50,"2020-10-1"};
        Object emps[][] = new Object[3][];
        emps[0] = emp0;     //用一个数组保存了所有的数据
        emps[1] = emp1;
        emps[2] = emp2;
        //打印数组
        for(int i=0;i<emps.length; i++ ){    //用循环输出二维数组的值
            System.out.println(Arrays.toString(emps[i]));
        }
        System.out.println("-------------------------------");
        //使用嵌套循环打印二维数据(打印表格数据)此处不借用Arrays.toString的方法

      for(int i = 0;i<emps.length;i++){
          System.out.println();
       for(int j = 0; j<emps[i].length; j++){   //里面的长度
           System.out.print(emps[i][j]+"\t");     //用循环遍历出二维数组的元素
       }
      }
        System.out.println("");
        System.out.println("-----------------------------------");
        System.out.println(Arrays.toString(emp0));
    }


}

.2运行截图:

Snipaste_2020-09-26_17-30-59.png

.3问题:

  1. 使用 Arrays.toString()方法与使用遍历输出的结果有无外层的[] 这是什么原因呢?

  2. 假如我没有将数据赋值给新建的emps数组我将如何输出不带[]的数据呢,是重写方法吗,为什么循环遍历就没有外面的这个[]符号呢?

  3. 新建的这个二维数组emps是想用一个数组来表示来表示三个数据吗? 这个实质好像二维数组的赋值.



JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 1589楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 1590楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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