在这个class里面可以把这个inner class当作一般的class来用。如果你没调用这个函数它当然不会被执行。
解决方案 »
- 设置Look&Feel后变卡的问题
- Java如何获取本机主板序列号?
- 不用STOP()方法怎么强制并且较安全的退出僵死的JAVA线程?请大虾们帮帮忙!
- 在ComboBox里面怎么加入动态图片(例如动态聊天表情)
- 奇怪的StringBuffer!
- 初学者的一个问题,请指教!
- 初学者:java的applet中如何使用延时(sleep)?
- 大家能够讲讲commit,rollback这两个函数的用法吗,谢谢咯!!
- Socket VS Rmi
- 关于JBuilder6.0
- 请问---请问---请问---请问::别人帮我回答了我的问题,我要如何给他分啊???
- 请教各位大虾java通信数据传输的问题,困扰很久。。。郁闷。
int cn;
A(){cn=0;}
class B{
void count(){
cn++;
}
}
public void count(){
B b = new B();
b.count();
System.out.println(cn);
}
static public void main(String[] args){
A a=new A();
a.count();
}
}知道是可以的。。
都没有数据还不如直接写个函数呢。
不知道 有什么作用
import javax.swing.*;
import java.awt.event.*;
import java.applet.AudioClip;
import java.awt.MediaTracker;
import java.awt.Image;
import java.awt.Graphics;
public class SharkAttack extends JApplet implements Runnable
{private Shark shark=null;
private SharkPrey prey[]=null;
private SharkControls guide=null;
private SwanCounter count=null;private class Arena extends JPanel //内部类
{public void paintComponent(Graphics g)
{super.paintComponent(g);
g.drawImage(river,0,0,getSize().width,getSize().height,this);
shark.paintComponent(g);
for(int i=0;i<prey.length;i++)
if(prey[i]!=null)
prey[i].paintComponent(g); }
}private class Clicker extends MouseAdapter //内部类
{public void mouseClicked(MouseEvent me)
{guide.setVisible(true);
guide.toFront();
}
}
private Image river=null,aSwan=null;
private AudioClip music=null,splash=null;
private Thread thread=null;
private Arena arena=new Arena(); //对象arena,不知道这里初始化后此对象里有什么东西public void init()
{river=getImage(getDocumentBase(),"Images/river.jpg");
aSwan=getImage(getDocumentBase(),"Images/swan.gif");
music=getAudioClip(getDocumentBase(),"Audio/jaws.wav");
splash=getAudioClip(getDocumentBase(),"Audio/splash.wav");
MediaTracker tracker=new MediaTracker(this);
tracker.addImage(river,0);tracker.addImage(aSwan,1);
try
{tracker.waitForAll();}
catch(InterruptedException ie)
{JOptionPane.showMessageDialog(this,"Error");}
shark=new Shark(this);
prey=new SharkPrey[10];
count=new SwanCounter(new ImageIcon(aSwan),prey.length);
getContentPane().add("Center",new JPanelBox(arena,"捉猫猫"));//对象arena传给JPaneBox对象,这样有什么用?arena对象里面根本就没什么东西。
getContentPane().add("South",count);
guide=new SharkControls(this,shark);
arena.setToolTipText("点这里操作");
arena.addMouseListener(new Clicker());//Clicker对象传给addMouseListener,同上不知道的。
}
public void start()
{thread=new Thread(this);
count.reset();
thread.start();music.loop();
for(int i=0;i<prey.length;i++)
prey[i]=new SharkPrey(aSwan,this);
}
public void stop()
{music.stop();count.stop();thread=null;}
public void run()
{Thread currentThread=Thread.currentThread();
while(thread==currentThread)
{shark.move();
for(int i=0;i<prey.length;i++)
if(prey[i]!=null)
prey[i].move();
try
{thread.sleep(200);}
catch(InterruptedException ie)
{System.err.println("Error"+ie);}
for(int i=0;i<prey.length;i++)
{if((prey[i]!=null)&&(prey[i].isEatenBy(shark)))
{splash.play();
prey[i]=null;
count.remove();
if(count.getCount()==0)
stop();
}
}
arena.repaint();//这里arena对象是不是用父类调用???
}
}
}
楼主应该看看java的GUI的相关资料先.
Arena 是JPanel的子类啊.它就能够被绘制的.paintComponent()方法在此JPanel被绘制时调用.
JPanelBox是自定义的类,可能它使用了Arena 作为一个视图来显示某些GUI组件吧.
Clicker继承了MouseAdapter (这是一个适配器,你可以自己看看它实现了那些接口),因此可以成为Arena的Mousese事件监听器,(arena.addMouseListener()),mouseClicked()方法在arena被点击时调用.