【发布时间】:2013-04-26 09:22:14
【问题描述】:
我有一种动画正在进行,其中一个矩形的大小正在增加和减小........我在这里要做的是通过 Robot() 类检测特定位置的颜色,但它的没有发生…………为什么?我也想知道 Robot() 是否可以在 try 或没有 main() 类的情况下使用。
//<applet code=ctry.java width=500 height=500></applet>
import java.awt.*;
import java.applet.Applet;
import java.awt.AWTException;
public class ctry extends Applet implements Runnable{
Thread d=null;
int l=0,t=0,i=250,j=250;
Color color=null;
public void init(){
setBackground(Color.red);
}
public void start(){
d=new Thread(this);
d.start();
}
public void run(){
System.out.println("in run");
try{
Robot robo=new Robot();
System.out.println("after robo");
while(true){
System.out.println("in while");
repaint();
color=robo.getPixelColor(i,j);
System.out.println("Red = " + color.getRed());
l+=10;
t+=10;
d.sleep(100);
if(t>=225)
{t=0;}
if(l>=225)
{l=0;}
}
}
catch(Exception e)
{}
}
public void paint(Graphics g)
{
System.out.println("in paint");
g.setColor(Color.blue);
g.fill3DRect(225,225,l*2,t*2,true);
}
public void destroy()
{}
}
【问题讨论】:
-
不要写空的
catch语句(这是一种不好的做法)添加print语句来查看是否真的抛出异常 -
1) 将
catch(Exception e) {}更改为catch(Exception e) { e.printStackTrace(); }并将输出复制/粘贴为edit to the question。然后通知我(通过输入“@”符号和我的名字)& 我会查看输出。它可能会抛出AccessControlException。 2) 对代码块使用一致且符合逻辑的缩进。代码的缩进是为了帮助大家理解程序流程! -
@ Andrew Thompson ............例外是 AccessControlException 以及更多............现在怎么办??
-
编辑你的问题,抛出所有异常。这将有助于诊断问题。
-
我怀疑
getPixelColor()可能会返回null,但我不能确定。您是否尝试过使用调试器单步执行代码?有多少打印语句被调用?当抛出异常时,它应该给你它正在死亡的行号。