问题:代码也一样,但是运行后不出现线和矩形图形
package cn.sxt.game; import java.awt.Graphics; import java.awt.Window; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; /** * * 飞机游戏的窗口 * @author jingyu * */ public class MyGameFrame extends JFrame{ @Override public void paint(Graphics g) { //自动被调用,g相当于一只画笔 g.drawLine(100,100,300,300); g.drawRect(100, 100, 100, 100); super.paint(g); } /** * 初始化窗口 */ public void launchFrame() { this.setTitle("飞机大战"); this.setVisible(true); this.setSize(500, 500); this.setLocation(300, 300); this.addWindowFocusListener(new WindowAdapter(){ @Override public void windowClosing(WindowEvent e){ System.exit(0); } }); } public static void main(String[] args) { MyGameFrame f=new MyGameFrame(); f.launchFrame(); } }
package first; import java.awt.*; import javax.swing.*; import javax.tools.Tool; public class BallGame extends JFrame{ Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png"); Image desk= Toolkit.getDefaultToolkit().getImage("images/desk.png"); double x=200; double y=200; 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 +10*Math.sin(degree); //碰到上下边界 if(y>501-40-30||y<0+40+40){ degree=-degree; } //碰到左右边界 if(x>806-40-30||x<40){ degree=3.14-degree; } } //创建窗口 void launchFrame(){ setSize(856,501); setLocation(100,100); setVisible(true); //实现动画,每秒绘制窗口25次 while(true){ repaint(); try { Thread.sleep(40); //1s=1000ms;大约1秒绘制1000、40=25次 } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { System.out.println("我的小游戏开始了!"); BallGame game=new BallGame(); game.launchFrame(); } }
老师有个问题就是,代码里面的paint方法,在主函数里面并没有被调用,为什么最后还可以显示出来效果呢
老师,我还不不懂得 thsi.age 和man.age 是什么
老师在视频里说红色框中的什么时间 昨天学过了,但是我按顺序看的课里没有说过这个呀?是我漏看了吗??
老师,这里的计数器为什么要用static修饰?
老师我这个问题出在哪 它提示第七。八。九。十二行我照着写感觉没什么错误啊
我前方在编码的时候,不是已经注明long类型了么?怎么还会是int类型又怎么会还需要加L呢?
如:
public class Testcontent{
public static void main(String[] args){
final double PI=3.14;
double r=30;
double area=PI*r*r;
double circle=2*PI*r;
long f=55555555555555;
System.out.print("面积是:"+area);
System.out.print("周长是"+circle);
}
前面已经标注出来的了long类型呀?
老师关于SxStu s1 = new SxtStu(); 这一句话的意思我还是有点不太明白,就是在SxStu s1 中的SxStu是如何确定的?是因为这个是在class SxStu中创建的新的对象所以这个是SxStu?那么我们不管创建几个对象都是要用SxStu?SxStu的含义是表明了这个对象的位置是在class SxStu吗?
为啥报错啊我看着视频跟我的一样就是报错
老师,Word文档的资料在哪里下载,想对着Word复习一遍
老师您帮我看一下j怎么没有变成数字呀
老师,interface B中的方法如何打印出来
请问,构造器无返回值,是不是构造器只能被调用一次的原因?
为什么打印出来没有换行
老师,
C c = new CImp01();
这段代码是否可以换成
CImp01 c = new CImp01();
以下是完整代码
public class TestMultiplelnheritance { public static void main(String[] args) { C c = new CImp01(); //接口 变量名=new 实现接口(); c.testA(); //调用重写后的方法 c.testB(); //调用重写后的方法 c.testC(); //调用重写后的方法 } } interface A{ //接口A void testA(); } interface B{ //接口B void testB(); } interface C extends A,B{ //接口C,继承了接口A和B,所以拥有接口A和B的方法 void testC(); } class CImp01 implements C{ //子类实现接口 @Override public void testA() { //重写方法 System.out.println("我是A"); } @Override public void testB() { //重写方法 System.out.println("我是B"); } @Override public void testC() { //重写方法 System.out.println("我是C"); } }
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637