2009-10-29 67 views
0

我正在尝试在Java类中创建一个全局的Robot变量而不抛出AWTException。我能想出的唯一方法就是抛出异常。我需要它是全球性的原因是因为我需要在类中的其他方法中使用相同的Robot变量。如何在不抛出AWTException的情况下创建全局机器人变量?

public class Robo{ 
    Robot r; 

    public Robo() throws AWTException{ 
     r = new Robot(); 
    } 

    public void useRobot(){  
     r.mouseMove(5, 5); 
     r.toString(); 
    } 

    public void useRobot2(){ 
     //r....some other things 
    } 
} 

如果我不抛出异常,我需要在每种方法中声明一个新的Robot。

public class Robo{ 

    public Robo() { 

    } 

    public void useRobot(){ 
     try{ 
      Robot r = new Robot(); 
      r.mouseMove(5, 5); 
      r.toString(); 
     } 
     catch (AWTException e){} 
    } 

    public void useRobot2(){ 
     try{ 
      Robot r = new Robot(); 
      r...... //some other things 
     } 
     catch (AWTException e){} 
    } 
} 

有人能帮助我吗?

回答

1

是否有理由不能在构造函数中捕获AWTException并将其包装在RuntimeException中?

public Robo() { 
    try { 
     r = new Robot(); 
    } catch(AWTException e) { 
     throw new RuntimeException("Failed to create java.awt.Robot for Robo instance", e); 
    } 
} 
0

使用在机器人类 静态初始化块这样的:

public static Robot r; 

static 
{ 
    try { 
     r = new Robot(); 
    } catch(AWTException e){e.printStrackTrace();} 
} 

这可以确保为JVM装载机器人类文件中的机器人类,一旦初始化

相关问题