javaobject.field read or write an instance field
Each JavaObject object contains properties that have the same names as the public instance fields and methods (but not the static or class fields and methods) of the Java object it represents. These properties allow you to read and write the value of public fields. The properties of a given JavaObject object obviously depend on the type of Java object it represents. You can use the for/in loop to enumerate the properties of any given JavaObject.
The JavaObject object is a JavaScript representation of a Java object. The properties of a JavaObject object represent the public instance fields and public instance methods defined for the Java object. (The class or static fields and methods of the object are represented by the JavaClass object.)
The JavaObject object implements the LiveConnect functionality that allows JavaScript programs to read and write the public instance fields of a Java object, using normal JavaScript syntax. The JavaObject also provides the functionality that allows JavaScript to read the methods of a Java object, although it is the JavaMethod object that allows JavaScript to actually invoke those methods. Data conversion between JavaScript and Java representations is handled automatically by LiveConnect. See Chapter 19, LiveConnect: JavaScript and Java for full details.
Bear in mind that Java is a typed language. This means that each of the fields of an object have a specific data type, and you can only set them to values of that type. For example, the width field of a java.awt.Rectangle object is an integer field, and attempting to set it to a string will cause a JavaScript error to occur.
java.awt.Rectangle is a JavaClass that represents the java.awt.Rectangle class. We can create a JavaObject that represents an instance of this class like this:
var r = new java.awt.Rectangle(0,0,4,5);
var perimeter = 2*r.width + 2*r.height;
r.width = perimeter/4; r.height = perimeter/4;