下面列出了java.awt.event.InputEvent#getMaskForButton() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
@SuppressWarnings("deprecation")
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
@SuppressWarnings("deprecation")
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
private static synchronized void initLegalButtonMask() {
if (LEGAL_BUTTON_MASK != 0) return;
int tmpMask = 0;
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
if (Toolkit.getDefaultToolkit() instanceof SunToolkit) {
final int buttonsNumber = ((SunToolkit)(Toolkit.getDefaultToolkit())).getNumberOfButtons();
for (int i = 0; i < buttonsNumber; i++){
tmpMask |= InputEvent.getMaskForButton(i+1);
}
}
}
tmpMask |= InputEvent.BUTTON1_MASK|
InputEvent.BUTTON2_MASK|
InputEvent.BUTTON3_MASK|
InputEvent.BUTTON1_DOWN_MASK|
InputEvent.BUTTON2_DOWN_MASK|
InputEvent.BUTTON3_DOWN_MASK;
LEGAL_BUTTON_MASK = tmpMask;
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}
private static void doTest() {
int x1 = frameBounds.x + frameBounds.width - 1;
int y1 = frameBounds.y + frameBounds.height - 1;
int x2 = frameBounds.x + frameBounds.width * 5 - 1;
int y2 = frameBounds.y + frameBounds.height * 5 - 1;
if (MouseInfo.getNumberOfButtons() < 1)
throw new RuntimeException("The systems without a mouse");
int button = 1;
int buttonMask = InputEvent.getMaskForButton(button);
for (int i = 0; i < ITERATION_NUMBER; i++) {
robot.mouseMove(x1, y1);
robot.waitForIdle();
robot.mousePress(buttonMask);
robot.waitForIdle();
for (int j=2; j<10;j++) {
robot.mouseMove(frameBounds.x + frameBounds.width * j - 1, frameBounds.y + frameBounds.height * j - 1);
robot.waitForIdle();
}
robot.mouseRelease(buttonMask);
robot.waitForIdle();
robot.mousePress(buttonMask);
robot.waitForIdle();
for (int j=8; j>1;j--) {
robot.mouseMove(frameBounds.x + frameBounds.width * j - 1, frameBounds.y + frameBounds.height * j - 1);
robot.waitForIdle();
}
robot.mouseMove(x1, y1);
robot.waitForIdle();
robot.mouseRelease(buttonMask);
robot.waitForIdle();
}
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}
public static void main(String []s){
System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
CheckGetMaskForButton f = new CheckGetMaskForButton();
int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
}
//get same array via reflection
Object obj = AccessController.doPrivileged(
new PrivilegedAction() {
public Object run() {
try {
Class clazz = Class.forName("java.awt.event.InputEvent");
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
if (method != null) {
method.setAccessible(true);
return method.invoke(null, (Object[])null);
}
}catch (Exception e){
throw new RuntimeException("Test failed. Exception occured:", e);
}
return null;
}
});
if (obj == null){
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
}
int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
//check that length of API array greater or equals then Reflect array.
if (Array.getLength(obj) < buttonMasksViaAPI.length){
throw new RuntimeException("Test failed. The length of API array greater or equals then the length of Reflect array.");
}
//Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
// same as for standard API.
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
}
}
System.out.println("Test passed.");
}