1- Since these are runtime client properties you’re setting, each element needs to be set individually when they are created. Some Java guru may have a slick way to override L&F at startup but I would just do something like this and call it from each form onLoad method. Save a ton of time not having to call each element by name:
// fun-ction to set client properties on all form objects (call from form onLoad)
var formName = arguments[0]
for ( var i = 0 ; i < forms[formName].elements.length ; i++ ) {
try {
switch( forms[formName].elements[i].getElementType() ) {
case "COMBOBOX" :
forms[formName].elements[i].putClientProperty('JComboBox.isSquare',true)
break
case "BUTTON" :
forms[formName].elements[i].putClientProperty('JButton.buttonType','square')
break
case "CHECK" :
forms[formName].elements[i].putClientProperty('JComponent.sizeVariant','small')
break
case "TEXT_FIELD" :
//
break
default:
}
}
catch (e) {}
}
2- Doesn’t look like its available on Mac Java. The list of available properties to date:
Sorry, had a lazy coding moment there. Better without the try statement:
// fun-ction to set client properties on all form objects (call from form onLoad)
var formName = arguments[0]
for ( var i = 0 ; i < forms[formName].elements.length ; i++ ) {
if ( forms[formName].elements[i].getElementType ) {
switch( forms[formName].elements[i].getElementType() ) {
case "COMBOBOX" :
forms[formName].elements[i].putClientProperty('JComboBox.isSquare',true)
break
case "BUTTON" :
forms[formName].elements[i].putClientProperty('JButton.buttonType','square')
break
case "CHECK" :
forms[formName].elements[i].putClientProperty('JComponent.sizeVariant','small')
break
case "TEXT_FIELD" :
//
break
default:
}
}
}
UI and client properties are two different things. There is some property overlap but there is no direct mapping of most of the “custom” apple leopard client properties at the UI level.
application.setUIProperty() function also takes java code in its parameters: