Static 变量为什么进不到background 里??

问题描述

要做个小游戏背景打不出来,直接用staticvalue里的变量很容易实现,但是把图片新建一个background类就不行了用system.out.println输出图像,staticvalue有反应,但是在background里,bufferedimage没附上值。而且在background里没有staticvalue的值,很是诡异!!!大哥大姐帮帮忙看看吧!!!小弟甘做牛马!代码如下MyFrame.javapackagetest.ft;importjava.awt.Graphics;importjava.awt.Toolkit;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjava.util.Iterator;importjavax.imageio.ImageIO;importjavax.swing.JFrame;publicclassMyFrameextendsJFrame{privatebackgroundnowBG=newbackground();publicstaticvoidmain(Stringarg[]){newMyFrame();}publicMyFrame(){this.setTitle("Game");this.setSize(900,600);intwidth=Toolkit.getDefaultToolkit().getScreenSize().width;intheight=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation((width-900)/2,(height-600)/2);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);StaticValue.init();}publicvoidpaint(Graphicsg){//TODOAuto-generatedmethodstubBufferedImageimage=newBufferedImage(900,600,BufferedImage.TYPE_3BYTE_BGR);Graphicsg2=image.getGraphics();//BufferedImageimage2=this.nowBG.getBgImage();//g2.drawImage(StaticValue.bgImage,0,0,this);//g2.drawImage(this.nowBG.getBgImage(),0,0,this);//land//System.out.println(this.nowBG.bgImage);//System.out.println(nowBG.getBgImage());/*Iterator<land>iter=this.nowBG.getAllLand().iterator();while(iter.hasNext()){landl=iter.next();g2.drawImage(l.getShowImage(),l.getX(),l.getY(),this);}*/g.drawImage(image,0,0,this);//g.drawImage(StaticValue.startImage,0,0,this);}}background.javapackagetest.ft;importtest.ft.StaticValue.*;importjava.awt.image.BufferedImage;importjava.util.ArrayList;importjava.util.List;publicclassbackground{privateBufferedImagebackgroundImage=null;privateList<land>allLand=newArrayList<land>();/***@paramallLandtheallLandtoset*/publicvoidsetAllLand(List<land>allLand){this.allLand=allLand;}publicList<land>getAllLand(){returnallLand;}publicbackground(){backgroundImage=StaticValue.bgImage;System.out.println(StaticValue.bgImage);//System.out.println(backgroundImage);for(inti=0;i<15;i++){this.allLand.add(newland(i*60,540));}}/***@returnthebgImage*/publicBufferedImagegetBgImage(){returnbackgroundImage;}/***@parambgImagethebgImagetoset*/publicvoidsetBgImage(BufferedImagebgImage){this.backgroundImage=bgImage;}}StaticValue.javapackagetest.ft;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjavax.imageio.ImageIO;publicclassStaticValue{publicstaticBufferedImagebgImage=null;publicstaticBufferedImagelandImage=null;publicstaticStringimagePath=System.getProperty("user.dir")+"/bin/";publicstaticvoidinit(){try{bgImage=ImageIO.read(newFile(imagePath+"sky.gif"));//System.out.println(bgImage);landImage=ImageIO.read(newFile(imagePath+"land.gif"));}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}

解决方案

解决方案二:
统一规划将规划将缓解

时间: 2024-09-25 18:58:16

Static 变量为什么进不到background 里??的相关文章

static变量-如何引用不同文件里的全局变量

问题描述 如何引用不同文件里的全局变量 如何在a.h中定义的变量在其他cpp文件中也能使用. 我使用的编译器是vs2010,尝试了如下几种方法. 1)在类里定义static变量,引用时编译不通过,为lnk2001错误. 2)在一个头文件里定义static变量,其他文件里extern声明,编译通过,但调试时无法修改,如在b.cpp中进行修改,在c.cpp中引用时还是初始化的0值. 3)去掉static,编译不通过,为lnk2005错误, 求大神们帮助

static 类里的static变量和非static类里static变量生命周期各是多少?

问题描述 比如在ssh里,定义一个static 类的static变量和一个非static类static变量 它们的生命周期各是多长呢? 是到应用程序结束? 还是用户登陆的时候创建用户登出的时候销毁? 还是由垃圾回收器决定,具体时间不确定? 解决方案 类不能定义为static的.只有类的成员才可以是static(包括变量和方法)static成员第一次用的时候创建,之后就一直在了.直道应用程序关闭.解决方案二:static可修饰的东西很多,分别有如下一些: 1. static修饰类中的变量,称这样的

c语言-关于C语言中的static变量的问题

问题描述 关于C语言中的static变量的问题 下面的代码最终结果为什么是-10?去掉这个函数中的static则结果是-2可以理解,请教一下加了static后这个变量在函数的多次调用中是如何变化的 int fun() { static int a = 1; return ++a; } int main() { int b; b = fun()-fun()*fun(); printf("%d ",b); return 0; } 解决方案 这属于编译器未定义行为.也就是说,fun()-fu

main static-java只有一个类,main和static 变量谁先运行?请各位指点。谢谢!

问题描述 java只有一个类,main和static 变量谁先运行?请各位指点.谢谢! import static net.mindview.util.Print.*;class Go { static String s1 = ""run""; static String s2 s3; static { s2 = ""drive car""; s3 = ""fly plane""; pr

在web场景下,static变量何时会被回收

问题描述 在web场景下,static变量何时会被回收 RT,JAVA相关. 是会保存到tomcat(或者别的容器)关闭,还是一次连接完成之后即回收? 两个不同的连接访问的static变量在内存区域里会是同一个吗? 望解答,或指点应该从哪里获得答案. 不胜感激. 解决方案 http://stackoverflow.com/questions/13126833/does-the-garbage-collector-work-on-static-variables-or-methods-in-jav

C++并发编程中static变量的问题

在C++中,static表示的是"静态初始化",由其声明的变量因此也叫作"静态变量",他们从完成初始化后就一直存在于程序运行空间中(确切地说位于静态变量区),直至程序退出或销毁. 如果按照变量的作用域来划分,静态变量可以分为3类: global variable,即全局变量 static variable with file scope static variable with block scope 前两种不必多说,重点说一下第三种里的"block sc

static变量与方法

 这篇文章主要介绍了static变量与方法,有需要的朋友可以参考一下 static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类属性"或"类方法".   如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号"::"调用.   static关键字可以用来修饰变量.方法.   不经过实例化,就可以直接访问类中static的属性和static的方法.   static 的属性和方法,只能

Java变量的缺省(默认)值--只有类的instance变量和static变量才有

变量   JVM将为类的instance和static变量赋上缺省值(默认值),包括数组array中的每一个元素--而不用再写初始化赋值语句. 切记:局部变量是没有缺省值的,必须手动初始化! 这一缺省赋值过程是在对象的构造函数调用之前完成的,如果程序写了对instance和static变量的赋初值语句,且给的值就是JVM默认的值,那么无疑是画蛇添足,重复劳动了一遍. 如下面的代码说明了怎样画蛇添足的: 情况一: public class Foo {   private int count=0; 

static变量作用域

变量   static变量与asp.net 在C#中,static变量表示该变量属于类,而不是类的实例.可以说是该类的所有实例共享一个static变量.asp.net的页面就是一个类,我们访问一个页面.就会在服务器上实例化一个该类的实例,来响应我们的请求. "所有实例共享一个static变量" 这就意味着,所有的客户端访问到的asp.net页面中static变量都是同一个变量. 由于我们每次访问asp.net页面都是一个全新的对象,而不是我们上一次访问的对象.所以上次页面访问时我们对页