Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private NativeMe As JavaObject
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
'MainForm.RootPane.LoadLayout("Layout1") 'Load the layout file.
MainForm.Show
NativeMe = Me
'Standard
Log(NumberFormat2(123456789,1,2,2,True))
'Italiano
Dim s As String = NativeMe.RunMethod("formattaIT",Array(123456789.54,"###,###.##"))
Log(s)
'Generico
Dim migliaia As Char = "-"
Dim decimale As Char = "*"
Dim s As String = NativeMe.RunMethod("formatta",Array(123456789.54,"###,###.##", decimale, migliaia))
Log(s)
End Sub
'Return true to allow the default exceptions handler to handle the uncaught exception.
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
Return True
End Sub
#if JAVA
import java.util.*;
import java.text.*;
//formatta in base ai parametri
static public String formatta(double value, String pattern, char decimal, char thousand) {
Locale currentLocale = new Locale("it", "IT");
DecimalFormatSymbols mySymbols = new DecimalFormatSymbols(currentLocale);
mySymbols.setDecimalSeparator(decimal);
mySymbols.setGroupingSeparator(thousand);
DecimalFormat df = new DecimalFormat(pattern, mySymbols);
df.applyPattern(pattern);
String output = df.format(value);
return output;
}
//usa impostazione locale correnti, nel mio caso italiano
static public String formattaIT(double value, String pattern) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
return output;
}
//formatta in base al locale passato come parametro
static public void localizedFormat(String pattern, double value, Locale loc ) {
NumberFormat nf = NumberFormat.getNumberInstance(loc);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
String output = df.format(value);
System.out.println(pattern + " " + output + " " + loc.toString());
}
#End If