Class Font
Codename One currently supports 3 font types:
-
System fonts - these are very simplistic builtin fonts. They work on all platforms and come in one of 3 sizes. However, they are ubiquitous and work in every platform in all languages. A system font can be created using
int, int). -
TTF files - you can just place a TTF file in the src directory of the project and it will appear in the Codename One Designer as an option. You can load such a font using
java.lang.String). -
Native fonts - these aren't supported on all platforms but generally they allow you to use a set of platform native good looking fonts. E.g. on Android the devices Roboto font will be used and on iOS Helvetica Neue will be used. You can load such a font using
java.lang.String).
WARNING: If you use a TTF file MAKE SURE not to delete the file when there MIGHT be a reference to it. This can cause hard to track down issues!
IMPORTANT: due to copyright restrictions we cannot distribute Helvetica and thus can't simulate it. In the simulator you will see Roboto as the fallback in some cases and not the device font unless you are running on a Mac. Notice that the Roboto font from Google doesn't support all languages and thus special characters might not work on the simulator but would work on the device.
The sample code below demonstrates a catalog of available fonts, the scr
private Label createForFont(Font fnt, String s) {
Label l = new Label(s);
l.getUnselectedStyle().setFont(fnt);
return l;
}
public void showForm() {
GridLayout gr = new GridLayout(5);
gr.setAutoFit(true);
Form hi = new Form("Fonts", gr);
int fontSize = Display.getInstance().convertToPixels(3);
// requires Handlee-Regular.ttf in the src folder root!
Font ttfFont = Font.createTrueTypeFont("Handlee", "Handlee-Regular.ttf").
derive(fontSize, Font.STYLE_PLAIN);
Font smallPlainSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
Font mediumPlainSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
Font largePlainSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE);
Font smallBoldSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL);
Font mediumBoldSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
Font largeBoldSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE);
Font smallItalicSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_ITALIC, Font.SIZE_SMALL);
Font mediumItalicSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_ITALIC, Font.SIZE_MEDIUM);
Font largeItalicSystemFont = Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_ITALIC, Font.SIZE_LARGE);
Font smallPlainMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_SMALL);
Font mediumPlainMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
Font largePlainMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_LARGE);
Font smallBoldMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_SMALL);
Font mediumBoldMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
Font largeBoldMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_LARGE);
Font smallItalicMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_ITALIC, Font.SIZE_SMALL);
Font mediumItalicMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_ITALIC, Font.SIZE_MEDIUM);
Font largeItalicMonospaceFont = Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_ITALIC, Font.SIZE_LARGE);
Font smallPlainProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL);
Font mediumPlainProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
Font largePlainProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_LARGE);
Font smallBoldProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_SMALL);
Font mediumBoldProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
Font largeBoldProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);
Font smallItalicProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_ITALIC, Font.SIZE_SMALL);
Font mediumItalicProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_ITALIC, Font.SIZE_MEDIUM);
Font largeItalicProportionalFont = Font.createSystemFont(Font.FACE_PROPORTIONAL, Font.STYLE_ITALIC, Font.SIZE_LARGE);
String[] nativeFontTypes = {
"native:MainThin", "native:MainLight", "native:MainRegular", "native:MainBold", "native:MainBlack",
"native:ItalicThin", "native:ItalicLight", "native:ItalicRegular", "native:ItalicBold", "native:ItalicBlack"};
for(String s : nativeFontTypes) {
Font tt = Font.createTrueTypeFont(s, s).derive(fontSize, Font.STYLE_PLAIN);
hi.add(createForFont(tt, s));
}
hi.add(createForFont(ttfFont, "Handlee TTF Font")).
add(createForFont(smallPlainSystemFont, "smallPlainSystemFont")).
add(createForFont(mediumPlainSystemFont, "mediumPlainSystemFont")).
add(createForFont(largePlainSystemFont, "largePlainSystemFont")).
add(createForFont(smallBoldSystemFont, "smallBoldSystemFont")).
add(createForFont(mediumBoldSystemFont, "mediumBoldSystemFont")).
add(createForFont(largeBoldSystemFont, "largeBoldSystemFont")).
add(createForFont(smallPlainSystemFont, "smallItalicSystemFont")).
add(createForFont(mediumItalicSystemFont, "mediumItalicSystemFont")).
add(createForFont(largeItalicSystemFont, "largeItalicSystemFont")).
add(createForFont(smallPlainMonospaceFont, "smallPlainMonospaceFont")).
add(createForFont(mediumPlainMonospaceFont, "mediumPlainMonospaceFont")).
add(createForFont(largePlainMonospaceFont, "largePlainMonospaceFont")).
add(createForFont(smallBoldMonospaceFont, "smallBoldMonospaceFont")).
add(createForFont(mediumBoldMonospaceFont, "mediumBoldMonospaceFont")).
add(createForFont(largeBoldMonospaceFont, "largeBoldMonospaceFont")).
add(createForFont(smallItalicMonospaceFont, "smallItalicMonospaceFont")).
add(createForFont(mediumItalicMonospaceFont, "mediumItalicMonospaceFont")).
add(createForFont(largeItalicMonospaceFont, "largeItalicMonospaceFont")).
add(createForFont(smallPlainProportionalFont, "smallPlainProportionalFont")).
add(createForFont(mediumPlainProportionalFont, "mediumPlainProportionalFont")).
add(createForFont(largePlainProportionalFont, "largePlainProportionalFont")).
add(createForFont(smallBoldProportionalFont, "smallBoldProportionalFont")).
add(createForFont(mediumBoldProportionalFont, "mediumBoldProportionalFont")).
add(createForFont(largeBoldProportionalFont, "largeBoldProportionalFont")).
add(createForFont(smallItalicProportionalFont, "smallItalicProportionalFont")).
add(createForFont(mediumItalicProportionalFont, "mediumItalicProportionalFont")).
add(createForFont(largeItalicProportionalFont, "largeItalicProportionalFont"));
hi.show();
}
The demo code on the iPad simulator on a Mac
The demo code on an Android 5.1 OPO device (OnePlus One)
The Font class also supports bitmap fonts but this support is strictly aimed at legacy applications. We no longer maintain that functionality.
-
Field Summary
Fields inherited from class CN
BASELINE, BOTTOM, CENTER, CENTER_BEHAVIOR_CENTER, CENTER_BEHAVIOR_CENTER_ABSOLUTE, CENTER_BEHAVIOR_SCALE, CENTER_BEHAVIOR_TOTAL_BELOW, EAST, FACE_MONOSPACE, FACE_PROPORTIONAL, FACE_SYSTEM, LEFT, NATIVE_ITALIC_BLACK, NATIVE_ITALIC_BOLD, NATIVE_ITALIC_LIGHT, NATIVE_ITALIC_REGULAR, NATIVE_ITALIC_THIN, NATIVE_MAIN_BLACK, NATIVE_MAIN_BOLD, NATIVE_MAIN_LIGHT, NATIVE_MAIN_REGULAR, NATIVE_MAIN_THIN, NORTH, RIGHT, SIZE_LARGE, SIZE_MEDIUM, SIZE_SMALL, SOUTH, STYLE_BOLD, STYLE_ITALIC, STYLE_PLAIN, STYLE_UNDERLINED, TOP, WESTModifier and TypeFieldDescriptionstatic final intAlignment to the baseline constraintstatic final intBox-orientation constant used to specify the bottom of a box.static final intIndicates a Component center alignmentstatic final intDefines the behavior of the component placed in the center position of the layout, places the component in the center of the space available to the center component.static final intDefines the behavior of the component placed in the center position of the layout, places the component in the center of the surrounding containerstatic final intDefines the behavior of the component placed in the center position of the layout, by default it is scaled to the available spacestatic final intThe center component takes up the entire screens and the sides are automatically placed on top of it thus creating a layered effectstatic final StringThe east layout constraint (right of container).static final intConstant allowing us to author portable system fontsstatic final intConstant allowing us to author portable system fontsstatic final intConstant allowing us to author portable system fontsstatic final intBox-orientation constant used to specify the left side of a box.static final StringConstant for the italic black native font.static final StringConstant for the italic bold native font.static final StringConstant for the italic light native font.static final StringConstant for the italic regular native font.static final StringConstant for the italic thin native font.static final StringConstant for the main black native font.static final StringConstant for the main bold native font.static final StringConstant for the main light native font.static final StringConstant for the main regular native font.static final StringConstant for the name of the main thin native font.static final StringThe north layout constraint (top of container).static final intBox-orientation constant used to specify the right side of a box.static final intConstant allowing us to author portable system fontsstatic final intConstant allowing us to author portable system fontsstatic final intConstant allowing us to author portable system fontsstatic final StringThe south layout constraint (bottom of container).static final intConstant allowing us to author portable system fontsstatic final intConstant allowing us to author portable system fontsstatic final intConstant allowing us to author portable system fontsstatic final intConstant allowing us to author portable system fontsstatic final intBox-orientation constant used to specify the top of a box.static final StringThe west layout constraint (left of container).Fields inherited from class CN1Constants
DENSITY_2HD, DENSITY_4K, DENSITY_560, DENSITY_HD, DENSITY_HIGH, DENSITY_LOW, DENSITY_MEDIUM, DENSITY_VERY_HIGH, DENSITY_VERY_LOW, GALLERY_ALL, GALLERY_ALL_MULTI, GALLERY_IMAGE, GALLERY_IMAGE_MULTI, GALLERY_VIDEO, GALLERY_VIDEO_MULTI, PICKER_TYPE_CALENDAR, PICKER_TYPE_DATE, PICKER_TYPE_DATE_AND_TIME, PICKER_TYPE_DURATION, PICKER_TYPE_DURATION_HOURS, PICKER_TYPE_DURATION_MINUTES, PICKER_TYPE_STRINGS, PICKER_TYPE_TIME, SMS_BOTH, SMS_INTERACTIVE, SMS_NOT_SUPPORTED, SMS_SEAMLESSModifier and TypeFieldDescriptionstatic final intDouble the HD level densitystatic final int4K level densitystatic final intIntermediate density for screens that sit somewhere between HD to 2HDstatic final intHD Up To 1920x1080static final intHi Density Up To 480x854static final intLow Density Up To 240x320static final intMedium Density Up To 360x480static final intVery Hi Density Up To 1440x720static final intVery Low Density 176x220 And Smallerstatic final intUsed by openGallerystatic final intUsed by openGallerystatic final intUsed by openGallerystatic final intUsed by openGallerystatic final intUsed by openGallerystatic final intUsed by openGallerystatic final intCalendar picker type.static final intDate native picker type, it returns a java.util.Date result.static final intDate and time native picker type, it returns a java.util.Date result.static final intDuration picker type.static final intDuration picker type.static final intDuration picker type.static final intStrings native picker type, it returns a String result and accepts a String array.static final intTime native picker type, it returns an integer with minutes since midnight.static final intUsed by getSMSSupport to indicate that SMS can be sent in either seamless or interactive modestatic final intUsed by getSMSSupport to indicate that SMS triggers the native SMS app which will show a compose UIstatic final intUsed by getSMSSupport to indicate that SMS is not supportedstatic final intUsed by getSMSSupport to indicate that SMS is sent in the background without a compose UI -
Method Summary
Modifier and TypeMethodDescriptionvoidaddContrast(byte value) Increase the contrast of the bitmap font for rendering on top of a surface whose color is darker.intcharsWidth(char[] ch, int offset, int length) Return the width of the given characters in this font instanceintcharWidth(char ch) Return the width of the specific character when rendered alonestatic voidBitmap fonts are cached this method allows us to flush the cache thus allows us to reload a fontstatic FontCreates a new font instance based on the platform specific string name of the font.static FontcreateBitmapFont(Image bitmap, int[] cutOffsets, int[] charWidth, String charsets) Creates a bitmap font with the given argumentsstatic FontcreateBitmapFont(String name, Image bitmap, int[] cutOffsets, int[] charWidth, String charsets) Creates a bitmap font with the given arguments and places said font in the cachestatic FontcreateSystemFont(int face, int style, int size) Creates a system native font in a similar way to common MIDP fontsstatic FontcreateTrueTypeFont(String fontName) Shorthand forcreateTrueTypeFont(name, name)which is useful for cases such as native: fonts.static FontcreateTrueTypeFont(String fontName, float sizeMm) Shorthand forcreateTrueTypeFont(name, name)&derive(size)which is useful for cases such as native: fonts.static FontcreateTrueTypeFont(String fontName, float size, byte sizeUnit) Shorthand forcreateTrueTypeFont(name, name)&derive(size)which is useful for cases such as native: fonts.static FontcreateTrueTypeFont(String fontName, String fileName) Creates a true type font with the given name/filename (font name might be different from the file name and is required by some devices e.g. iOS).derive(float sizePixels, int weight) Creates a font based on this truetype font with the given pixel, WARNING! This method will only work in the case of truetype fonts!derive(float size, int weight, byte unitType) Creates a font based on this truetype font with the given pixel, WARNING! This method will only work in the case of truetype fonts!booleanIndicates whether some other object is "equal to" this one.intThe ascent is the amount by which the character ascends above the baseline.static FontgetBitmapFont(String fontName) Returns a previously loaded bitmap font from cacheReturns a string containing all the characters supported by this font.static FontReturn the global default font instanceintThe descent is the amount by which the character descends below the baselineintgetFace()Return Optional operation returning the font face for system fontsintReturn the total height of the fontReturns the internal implementation specific font objectfloatReturns the size with which the font object was created in case of truetype fonts/derived fonts.intgetSize()Return Optional operation returning the font size for system fontsintgetStyle()Return Optional operation returning the font style for system fontsinthashCode()Returns a hash code value for the object.static booleanIndicates whether bitmap fonts should be enabled when loading or the fallback system font should be used instead.static booleanReturns true if the underlying platform allows creating a font based on a user submitted string.static booleanIndicates whether the implementation supports loading a font "natively" to handle one of the common native prefixesstatic booleanReturns true if the underlying platform supports loading truetype fonts from a file.booleanIndicates if this is a TTF native font that can be derived and manipulated.static voidsetBitmapFontEnabled(boolean enabled) Indicates whether bitmap fonts should be enabled by default when loading or the fallback system font should be used instead.static voidSets the global default font instanceintstringWidth(String str) Return the width of the given string in this font instanceintsubstringWidth(String str, int offset, int len) Return the width of the given string subset in this font instanceMethods inherited from class CN
addDefaultHeader, addEdtErrorHandler, addMessageListener, addNetworkErrorListener, addNetworkProgressListener, addToQueue, addToQueueAndWait, addWindowListener, announceForAccessibility, announceForAccessibility, callSerially, callSeriallyAndWait, callSeriallyAndWait, callSeriallyOnIdle, canDial, canExecute, canForceOrientation, canInstallOnHomescreen, captureScreen, clearStorage, clearStorageCache, convertToPixels, convertToPixels, convertToPixels, convertToPixels, createSoftWeakRef, createStorageInputStream, createStorageOutputStream, createThread, delete, deleteStorageFile, deregisterPush, dial, execute, existsInFileSystem, existsInStorage, exitApplication, exitFullScreen, extractHardRef, flushStorageCache, getAppHomePath, getCachesDir, getCurrentForm, getDesktopSize, getDeviceDensity, getDisplayHeight, getDisplayWidth, getDragStartPercentage, getFileLastModifiedFile, getFileLength, getFileSystemRootAvailableSpace, getFileSystemRoots, getFileSystemRootSizeBytes, getFileSystemRootType, getInitialWindowSizeHintPercent, getPlatformName, getPluginSupport, getProperty, getResourceAsStream, getSharedJavascriptContext, getSMSSupport, getWindowBounds, hasCachesDir, hasCamera, invokeAndBlock, invokeWithoutBlocking, invokeWithoutBlockingWithResultSync, isDarkMode, isDesktop, isDirectory, isEdt, isEnableAsyncStackTraces, isFullScreenSupported, isHiddenFile, isInFullScreenMode, isLockOrientation, isMinimized, isNativePickerTypeSupported, isNativeShareSupported, isPortrait, isScreenSaverDisableSupported, isSimulator, isTablet, killAndWait, listFiles, listStorageEntries, lockOrientation, log, log, minimizeApplication, mkdir, onCanInstallOnHomescreen, openFileInputStream, openFileOutputStream, openFileOutputStream, openGallery, postMessage, promptInstallOnHomescreen, readObjectFromStorage, registerPush, removeEdtErrorHandler, removeMessageListener, removeNetworkErrorListener, removeNetworkProgressListener, removeWindowListener, renameFile, requestFullScreen, restoreMinimizedApplication, restoreToBookmark, scheduleBackgroundTask, sendLog, sendMessage, sendSMS, sendSMS, setBookmark, setDarkMode, setDragStartPercentage, setEnableAsyncStackTraces, setHiddenFile, setInitialWindowSizeHintPercent, setInterval, setProperty, setScreenSaverEnabled, setTimeout, setWindowSize, share, share, showNativePicker, startThread, storageEntrySize, unlockOrientation, updateNetworkThreadCount, vibrate, writeObjectToStorageModifier and TypeMethodDescriptionstatic voidaddDefaultHeader(String key, String value) Adds a header to the global default headers, this header will be implicitly added to all requests going out from this point onwards.static voidAn error handler will receive an action event with the source exception from the EDT once an error handler is installed the default Codename One error dialog will no longer appearstatic voidAdds a listener to receive messages from the native platform.static voidAdds a generic listener to a network error that is invoked before the exception is propagated.static voidAdds a listener to be notified when progress updatesstatic voidaddToQueue(ConnectionRequest request) Adds the given network connection to the queue of executionstatic voidaddToQueueAndWait(ConnectionRequest request) Identical to add to queue but waits until the request is processed in the queue, this is useful for completely synchronous operations.static voidAdds a listener for window events such as resize or move.static voidannounceForAccessibility(Component cmp, String text) Manually announces text to native accessibility services, optionally associating the announcement with a specific component.static voidConvenience overload to announce text without specifying a component.static voidCauses the runnable to be invoked on the event dispatch thread.static voidIdentical to callSerially with the added benefit of waiting for the Runnable method to complete.static voidcallSeriallyAndWait(Runnable r, int timeout) Identical to callSerially with the added benefit of waiting for the Runnable method to complete.static voidCauses the runnable to be invoked on the event dispatch thread when the event dispatch thread is idle.static booleancanDial()Returns true if the device has dialing capabilitiesstatic BooleancanExecute(String url) Returns true if executing this URL should work, returns false if it will not and null if this is unknown.static booleanReturns true if the device allows forcing the orientation via code, feature phones do not allow this although some include a jad property allowing for this featurestatic booleanChecks to see if you can prompt the user to install the app on their homescreen.static ImageCaptures a screenshot of the screen.static voidDeletes all the files in the application storagestatic voidStorage is cached for faster access, however this might cause a problem with refreshing objects since they are not cloned.static intconvertToPixels(float dipCount) Converts the dips count to pixels, dips are roughly 1mm in length.static intconvertToPixels(float value, byte unitType) Converts from specified unit to pixels.static intconvertToPixels(float value, byte unitType, boolean horizontal) Converts from specified unit to pixels.static intconvertToPixels(int dipCount, boolean horizontal) Converts the dips count to pixels, dips are roughly 1mm in length.static ObjectCreates a soft/weak reference to an object that allows it to be collected yet caches it.static InputStreamCreates an input stream to the given storage source filestatic OutputStreamCreates an output stream to the storage with the given namestatic ThreadcreateThread(Runnable r, String name) Start a Codename One thread that supports crash protection and similar Codename One features.static voidDeletes the specific file or empty directory.static voiddeleteStorageFile(String name) Deletes the given file name from the storagestatic voidStop receiving push notifications to this client applicationstatic voidOpens the device Dialer application with the given phone numberstatic voidExecutes the given URL on the native platformstatic booleanexistsInFileSystem(String file) Indicates whether a file existsstatic booleanexistsInStorage(String name) Returns true if the given storage file existsstatic voidExits the application...static booleanTry to exit full-screen mode if the platform supports it.static ObjectExtracts the hard reference from the soft/weak reference givenstatic voidFlush the storage cache allowing implementations that cache storage objects to storestatic StringThe application home directory is a "safe place" to store files for this application in a portable way.static StringReturns a device specific directory designed for cache style files, or null if#hasCachesDir()is falsestatic FormReturn the form currently displayed on the screen or null if no form is currently displayed.static DimensionReturns the size of the desktop hosting the application window when running on a desktop platform.static intReturns one of the density variables appropriate for this device, notice that density doesn't always correspond to resolution and an implementation might decide to change the density based on DPI constraints.static intReturn the height of the displaystatic intReturn the width of the displaystatic intThis method allows us to manipulate the drag started detection logic.static longReturns the time that the file denoted by this abstract pathname was last modified.static longgetFileLength(String file) Returns the length of the filestatic longReturns the available space in the given root directorystatic String[]Returns the filesystem roots from which the structure of the file system can be traversedstatic longReturns the size of the given root directorystatic intgetFileSystemRootType(String root) Returns the type of the root often by guessingstatic DimensionReturns the initial desktop window size hint provided by the first shown form, when available.static StringReturns a 2-3 letter code representing the platform name for the platform overridestatic PluginSupportReturns the plugin support object for the current platform.static StringgetProperty(String key, String defaultValue) Returns the property from the underlying platform deployment or the default value if no deployment values are supported.static InputStreamgetResourceAsStream(String resource) This method is essentially equivalent to cls.getResourceAsStream(String) however some platforms might define unique ways in which to load resources within the implementation.static BrowserComponentGets a reference to an application-wide shared Javascript context that can be used for running Javascript commands.static intIndicates the level of SMS support in the platform as one of:#SMS_NOT_SUPPORTED(for desktop, tablet etc.),#SMS_SEAMLESS(no UI interaction),#SMS_INTERACTIVE(with compose UI),#SMS_BOTH.static RectangleReturns the number of monitors attached to the desktop environment when available.static booleanReturns true if the device has a directory dedicated for "cache" filesstatic booleanReturns true if the device has camera false otherwise.static voidInvokes runnable and blocks the current thread, if the current thread is the EDT it will still be blocked in a way that doesn't break event dispatch .static voidInvokes a Runnable with blocking disabled.static <T> TInvokes a RunnableWithResultSync with blocking disabled.static BooleanReturns true if the platform is in dark mode, null is returned for unknown statusstatic booleanReturns true if this is a desktop applicationstatic booleanisDirectory(String file) Indicates whether the given file is a directorystatic booleanisEdt()Returns true if we are currently in the event dispatch thread.static booleanChecks if async stack traces are enabled.static booleanChecks if this platform supports full-screen mode.static booleanisHiddenFile(String file) Indicates the hidden state of the filestatic booleanChecks if the app is currently running in full-screen mode.static booleanReturns true if orientation was locked using #lockOrientation(boolean) and not yet unlocked via #unlockOrientation().static booleanIndicates whether an application is minimizedstatic booleanisNativePickerTypeSupported(int pickerType) Indicates whether the native picker dialog is supported for the given type which can include one of PICKER_TYPE_DATE_AND_TIME, PICKER_TYPE_TIME, PICKER_TYPE_DATEstatic booleanIndicates if the underlying platform supports sharing capabilitiesstatic booleanReturns true if the device is currently in portrait modestatic booleanChecks if the device supports disabling the screen display from dimming, allowing the developer to keep the screen display on.static booleanAllows detecting development mode so debugging code and special cases can be used to simplify flowstatic booleanisTablet()Indicates whether the device is a tablet, notice that this is often a guessstatic voidkillAndWait(ConnectionRequest request) Kills the given request and waits until the request is killed if it is being processed by one of the threads.static String[]Lists the files within the given directory, returns relative file names and not full file names.static String[]Lists the names of the storage filesstatic voidlockOrientation(boolean portrait) On devices that return true for canForceOrientation() this method can lock the device orientation either to portrait or landscape modestatic voidPrints to the logstatic voidPrints to the logstatic booleanMinimizes the current application if minimization is supported by the platform (may fail).static voidCreates the given directorystatic voidA callback fired when you are allowed to prompt the user to install the app on their homescreen.static InputStreamopenFileInputStream(String file) Opens an input stream to the given filestatic OutputStreamopenFileOutputStream(String file) Opens an output stream to the given filestatic OutputStreamopenFileOutputStream(String file, int offset) Opens an output stream to the given filestatic voidopenGallery(ActionListener response, int type) Opens the device gallery to pick an image or a video.static voidpostMessage(MessageEvent message) Posts a message to the native platform.static booleanPrompts the user to install this app on their homescreen.static ObjectreadObjectFromStorage(String name) Reads the object from the storage, returns null if the object isn't therestatic voidRegister to receive push notification, invoke this method once (ever) to receive push notifications.static voidAn error handler will receive an action event with the source exception from the EDT once an error handler is installed the default Codename One error dialog will no longer appearstatic voidRemoves a listener from receiving messages from the native platform.static voidRemoves the given error listenerstatic voidAdds a listener to be notified when progress updatesstatic voidRemoves a previously registered window listener.static voidrenameFile(String file, String newName) Renames a file to the given name, expects the new name to be relative to the current directorystatic booleanTry to enter full-screen mode if the platform supports it.static voidRestore the minimized application if minimization is supported by the platformstatic voidRuns the last bookmark that was set using#setBookmark(java.lang.Runnable)static voidAllows executing a background task in a separate low priority thread.static voidsendLog()Sends the log to your email accountstatic voidsendMessage(String subject, Message msg, String... recipients) Send an email using the platform mail client.static voidSends a SMS message to the given phone numberstatic voidSends a SMS message to the given phone number, the code below demonstrates the logic of detecting platform behavior for sending SMS.static voidsetBookmark(Runnable bookmark) Sets a bookmark that can restore the app to a particular state.static voidsetDarkMode(Boolean darkMode) Override the default dark mode settingstatic voidsetDragStartPercentage(int dragStartPercentage) This method allows us to manipulate the drag started detection logic.static voidsetEnableAsyncStackTraces(boolean enable) Enables or disables async stack traces.static voidsetHiddenFile(String file, boolean h) Toggles the hidden state of the filestatic voidSets the initial desktop window size hint (percent of the desktop) that should be used when the first form is shown.static TimersetInterval(int timeout, Runnable r) Convenience method to schedule a task to run on the EDT after periodms repeating every periodms.static voidsetProperty(String key, String value) Sets a local property to the application, this method has no effect on the implementation code and only allows the user to override the logic of getProperty for internal application purposes.static voidsetScreenSaverEnabled(boolean e) If isScreenSaverDisableSupported() returns true calling this method will lock the screen display onstatic TimersetTimeout(int timeout, Runnable r) Convenience method to schedule a task to run on the EDT after timeoutms.static voidsetWindowSize(int width, int height) Requests a resize of the application window when supported by the platform.static voidShare the required information using the platform sharing services.static voidShare the required information using the platform sharing services.static ObjectshowNativePicker(int type, Component source, Object currentValue, Object data) Shows a native modal dialog allowing us to perform the picking for the given type which can include one of PICKER_TYPE_DATE_AND_TIME, PICKER_TYPE_TIME, PICKER_TYPE_DATEstatic ThreadstartThread(Runnable r, String name) Start a Codename One thread that supports crash protection and similar Codename One features.static intstorageEntrySize(String name) Returns the size in bytes of the given entrystatic voidThis is the reverse method for lock orientation allowing orientation lock to be disabledstatic voidupdateNetworkThreadCount(int threadCount) Sets the number of network threads and restarts the network threadsstatic voidvibrate(int duration) Vibrates the device for the given length of time, notice that this might ignore the time value completely on some OS's where this level of control isn't supported e.g.static booleanwriteObjectToStorage(String name, Object o) Writes the given object to storage assuming it is an externalizable type or one of the supported types.Methods inherited from class Object
clone, getClass, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()final ClassgetClass()Returns the runtime class of an object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.toString()Returns a string representation of the object.final voidwait()Causes current thread to wait until another thread invokes the method or the method for this object.final voidwait(long timeout) Causes current thread to wait until either another thread invokes the method or the method for this object, or a specified amount of time has elapsed.final voidwait(long timeout, int nanos) Causes current thread to wait until another thread invokes the method or the method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
-
Method Details
-
getBitmapFont
-
clearBitmapCache
public static void clearBitmapCache()Bitmap fonts are cached this method allows us to flush the cache thus allows us to reload a font
Deprecated
bitmap font functionality is now deprecated
-
isTrueTypeFileSupported
public static boolean isTrueTypeFileSupported()Returns true if the underlying platform supports loading truetype fonts from a file.
Returns
- Returns:
- true if the underlying platform supports loading truetype fonts from a file
-
isCreationByStringSupported
public static boolean isCreationByStringSupported()Returns true if the underlying platform allows creating a font based on a user submitted string.
Returns
- Returns:
- true if the underlying platform allows creating a font based on a user submitted string
-
isNativeFontSchemeSupported
public static boolean isNativeFontSchemeSupported()Indicates whether the implementation supports loading a font "natively" to handle one of the common native prefixes
Returns
true if the "native:" prefix is supported by loadTrueTypeFont
-
createTrueTypeFont
Shorthand for
createTrueTypeFont(name, name)which is useful for cases such as native: fonts. If a TTF file is passed this method will throw an exception!Parameters
fontName: the native font name. Notice that TTF file names are prohibited
Returns
a font object
-
createTrueTypeFont
-
createTrueTypeFont
Shorthand for
createTrueTypeFont(name, name)&derive(size)which is useful for cases such as native: fonts.Parameters
-
fontName: the native font name -
size: the size in the specified unit. -
sizeUnit: @param sizeUnit The unit type of the size. One ofcom.codename1.ui.plaf.Style#UNIT_TYPE_DIPS,
-
`com.codename1.ui.plaf.Style#UNIT_TYPE_PIXELS`, -
`com.codename1.ui.plaf.Style#UNIT_TYPE_REM`, -
`com.codename1.ui.plaf.Style#UNIT_TYPE_VW`, -
`com.codename1.ui.plaf.Style#UNIT_TYPE_VH`, -
`com.codename1.ui.plaf.Style#UNIT_TYPE_VMIN`, -
`com.codename1.ui.plaf.Style#UNIT_TYPE_VMAX`.
Returns
a font object
Since
8.0
-
-
createTrueTypeFont
Creates a true type font with the given name/filename (font name might be different from the file name and is required by some devices e.g. iOS). The font file must reside in the src root of the project in order to be detectable. The file name should contain no slashes or any such value.
Important some platforms e.g. iOS don't support changing the weight of the font and require you to use the font name matching the weight, so the weight argument to derive will be ignored!
This system also supports a special "native:" prefix that uses system native fonts e.g. HelveticaNeue on iOS and Roboto on Android. It supports the following types: native:MainThin, native:MainLight, native:MainRegular, native:MainBold, native:MainBlack, native:ItalicThin, native:ItalicLight, native:ItalicRegular, native:ItalicBold, native:ItalicBlack. Important due to copyright restrictions we cannot distribute Helvetica and thus can't simulate it. In the simulator you will see Roboto and not the device font unless you are running on a Mac
Parameters
-
fontName: the name of the font -
fileName: the file name of the font as it appears in the src directory of the project, it MUST end with the .ttf extension!
Returns
the font object created or null if true type fonts aren't supported on this platform
-
-
create
Creates a new font instance based on the platform specific string name of the font. This method isn't supported on some platforms.
Parameters
lookup: @param lookup a set of platform specific names delimited by commas, the first succefully loaded font will be used
Returns
newly created font or null if creation failed
-
createBitmapFont
public static Font createBitmapFont(String name, Image bitmap, int[] cutOffsets, int[] charWidth, String charsets) Creates a bitmap font with the given arguments and places said font in the cache
Parameters
-
name: the name for the font in the cache -
bitmap: a transparency map in red and black that indicates the characters -
cutOffsets: character offsets matching the bitmap pixels and characters in the font -
charWidth: @param charWidth The width of the character when drawing... this should not be confused with the number ofcutOffset[o + 1] - cutOffset[o]. They are completely different since a character can be "wider" and "seep" into the next region. This is especially true with italic characters all of which "lean" outside of their bounds. -
charsets: the set of characters in the font
Returns
a font object to draw bitmap fonts
Deprecated
bitmap font functionality is now deprecated
-
-
createBitmapFont
public static Font createBitmapFont(Image bitmap, int[] cutOffsets, int[] charWidth, String charsets) Creates a bitmap font with the given arguments
Parameters
-
bitmap: a transparency map in red and black that indicates the characters -
cutOffsets: character offsets matching the bitmap pixels and characters in the font -
charWidth: @param charWidth The width of the character when drawing... this should not be confused with the number ofcutOffset[o + 1] - cutOffset[o]. They are completely different since a character can be "wider" and "seep" into the next region. This is especially true with italic characters all of which "lean" outside of their bounds. -
charsets: the set of characters in the font
Returns
a font object to draw bitmap fonts
Deprecated
bitmap font functionality is now deprecated
-
-
createSystemFont
Creates a system native font in a similar way to common MIDP fonts
Parameters
-
face: One of FACE_SYSTEM, FACE_PROPORTIONAL, FACE_MONOSPACE -
style: one of STYLE_PLAIN, STYLE_ITALIC, STYLE_BOLD -
size: One of SIZE_SMALL, SIZE_MEDIUM, SIZE_LARGE
Returns
A newly created system font instance
-
-
getDefaultFont
Return the global default font instance
Returns
the global default font instance
-
setDefaultFont
Sets the global default font instance
Parameters
f: the global default font instance
-
isBitmapFontEnabled
public static boolean isBitmapFontEnabled()Indicates whether bitmap fonts should be enabled when loading or the fallback system font should be used instead. This allows easy toggling of font loading.
Returns
true by default indicating that bitmap font loading is enabled
-
setBitmapFontEnabled
public static void setBitmapFontEnabled(boolean enabled) Indicates whether bitmap fonts should be enabled by default when loading or the fallback system font should be used instead. This allows easy toggling of font loading.
Parameters
enabled: true to enable bitmap font loading (if they exist in the resource)
-
derive
Creates a font based on this truetype font with the given pixel, WARNING! This method will only work in the case of truetype fonts!
Important some platforms e.g. iOS don't support changing the weight of the font and require you to use the font name matching the weight, so the weight argument to derive will be ignored!
Parameters
-
size: the size of the font in the specified unit type. -
weight: PLAIN, BOLD or ITALIC weight based on the constants in this class -
unitType: @param unitType The unit type of the size. One ofcom.codename1.ui.plaf.Style#UNIT_TYPE_DIPS,com.codename1.ui.plaf.Style#UNIT_TYPE_PIXELS,com.codename1.ui.plaf.Style#UNIT_TYPE_REM,com.codename1.ui.plaf.Style#UNIT_TYPE_VW,com.codename1.ui.plaf.Style#UNIT_TYPE_VH,com.codename1.ui.plaf.Style#UNIT_TYPE_VMIN,com.codename1.ui.plaf.Style#UNIT_TYPE_VMAX.
Returns
scaled font instance
Since
8.0
-
-
derive
Creates a font based on this truetype font with the given pixel, WARNING! This method will only work in the case of truetype fonts!
Important some platforms e.g. iOS don't support changing the weight of the font and require you to use the font name matching the weight, so the weight argument to derive will be ignored!
Parameters
-
sizePixels: the size of the font in pixels -
weight: PLAIN, BOLD or ITALIC weight based on the constants in this class
Returns
scaled font instance
-
-
isTTFNativeFont
public boolean isTTFNativeFont()Indicates if this is a TTF native font that can be derived and manipulated. This is true for a font loaded from file (TTF) or using the native: font name
Returns
true if this is a native font
-
addContrast
public void addContrast(byte value) Increase the contrast of the bitmap font for rendering on top of a surface whose color is darker. This is useful when drawing anti-aliased bitmap fonts using a light color (e.g. white) on top of a dark surface (e.g. black), the font often breaks down if its contrast is not increased due to the way alpha blending appears to the eye.
Notice that this method only works in one way, contrast cannot be decreased properly in a font and it should be cleared and reloaed with a Look and Feel switch.
Parameters
value: the value to increase
Deprecated
bitmap font functionality is now deprecated
-
charsWidth
public int charsWidth(char[] ch, int offset, int length) Return the width of the given characters in this font instance
Parameters
-
ch: array of characters -
offset: characters offsets -
length: characters length
Returns
the width of the given characters in this font instance
-
-
substringWidth
Return the width of the given string subset in this font instance
Parameters
-
str: the given string -
offset: the string offset -
len: the len od string
Returns
the width of the given string subset in this font instance
-
-
stringWidth
Return the width of the given string in this font instance
Parameters
str: the given string *
Returns
the width of the given string in this font instance
-
charWidth
public int charWidth(char ch) Return the width of the specific character when rendered alone
Parameters
ch: the specific character
Returns
the width of the specific character when rendered alone
-
getHeight
public int getHeight()Return the total height of the font
Returns
the total height of the font
-
getFace
public int getFace()Return Optional operation returning the font face for system fonts
Returns
Optional operation returning the font face for system fonts
-
getSize
public int getSize()Return Optional operation returning the font size for system fonts
Returns
Optional operation returning the font size for system fonts
-
getStyle
public int getStyle()Return Optional operation returning the font style for system fonts
Returns
Optional operation returning the font style for system fonts
-
getCharset
Returns a string containing all the characters supported by this font. Will return null for system fonts.
Returns
- Returns:
- String containing the characters supported by a bitmap font or null otherwise.
-
getNativeFont
Returns the internal implementation specific font object
Returns
platform specific font object for use by implementation classes or native code
-
equals
Indicates whether some other object is "equal to" this one. The equals method implements an equivalence relation: It is reflexive: for any reference value x, x.equals(x) should return true. It is symmetric: for any reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true. It is transitive: for any reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true. It is consistent: for any reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the object is modified. For any non-null reference value x, x.equals(null) should return false. The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any reference values x and y, this method returns true if and only if x and y refer to the same object (x==y has the value true). -
hashCode
public int hashCode()Returns a hash code value for the object. This method is supported for the benefit of hashtables such as those provided by java.util.Hashtable. The general contract of hashCode is: Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application. If two objects are equal according to the equals(Object) method, then calling the hashCode method on each of the two objects must produce the same integer result. It is not required that if two objects are unequal according to the equals(java.lang.Object) method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hashtables. As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.) -
getAscent
public int getAscent()The ascent is the amount by which the character ascends above the baseline.
Returns
the ascent in pixels
-
getDescent
public int getDescent()The descent is the amount by which the character descends below the baseline
Returns
the descent in pixels
-
getPixelSize
public float getPixelSize()Returns the size with which the font object was created in case of truetype fonts/derived fonts. This is useful since a platform might change things slightly based on platform constraints but this value should be 100% consistent
Returns
the size requested in the derive method
-