2009-10-29 68 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裝載機器人類文件中的機器人類,一旦初始化

相關問題