会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132440个问题
JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 1966楼
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 1968楼

老师,我这边能够加载窗口,加载不到图片

public class BallGame extends JFrame {
    Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
    Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.png");

    double degree = 3.14 / 3;
    double x = 100;
    double y = 100;

    @Override
    public void paint(Graphics g) {
        System.out.println("窗口被画了一次");
        g.drawImage(desk, 0, 0, null);
        g.drawImage(ball, (int) x, (int) y, null);
        x += 10 * Math.cos(degree);
        y += 10 * Math.sin(degree);

        if (y > 500 - 40 - 30 || y < 40 + 40) {
            degree = -degree;
        }
        if (x < 40 || x > 856 - 40 - 30) {
            degree = 3.14 - degree;
        }
    }

    void launchFrame() {
        setSize(856, 500);
        setLocation(100, 100);
        setVisible(true);
        while (true) {
            repaint();
            try {
                Thread.sleep(40);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }


    public static void main(String[] args) {
        System.out.println("游戏开始");
        BallGame ballGame = new BallGame();
        ballGame.launchFrame();
    }
}

1620290637(1).png


JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 1972楼
JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 1973楼

package com.jam.plane;

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

/**
 * 游戏主窗口
 */
public class MyGameFrame extends Frame {

    @Override
   
public void paint(Graphics g){      //g当作是一支画笔
       
       
Color c = g.getColor();
//        g.setColor(color.red);
       
g.setColor(new Color(255,0,255));

        // 画直线
       
g.drawLine(100,100,400,400);
        //画矩形
       
g.drawRect(100,100,300,300);
        //画椭圆
       
g.drawOval(100,100,300,300);
        //画字符串
       
g.drawString("www.baidu.com",300,300);
       
        g.setColor(c);

    }



    // 初始化窗口
   
public void launchFrame(){
        this.setTitle("飞机大战.尚学堂");
        setVisible(true);   //窗口是否可见

       
setSize(500,500);   //窗口大小

       
setLocale(800,800);     //窗口打开的位置

        //增加关闭窗口的动作
       
this.addWindowFocusListener(new WindowAdapter() {
            @Override
           
public void windowClosing(WindowEvent e) {
                System.exit(0);     //正常退出程序
           
}
        });

    }

    private void setLocale(int x, int y) {
    }

    public static void main(String[] args) {
        MyGameFrame gameFrame = new MyGameFrame();
        gameFrame.launchFrame();
    }
}







提问:为什么代码一样,

1、不可以通过x关闭 窗口;

2、还不能绘制图形;

3、设置了locale位置,窗口还是在左上角。

4、为什么我的代码需要这段    private void setLocale(int x, int y) {},而老师你打的就不需要呢?

JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 1974楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 1978楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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