Over the years I’ve reported numerous uses for integrating Java components and functionality in Matlab. As I’ve also recently reported, MathWorks is apparently making a gradual shift away from standalone Java-based figures, toward browser-based web-enabled figures. As I surmised a few months ago, MathWorks has created dedicated surveys to solicit user feedbacks on the most important (and undocumented) non-compatible aspects of this paradigm change: one regarding users’ use of the javacomponent function, the other regarding the use of the figure’s JavaFrame property:
- Survey regarding usage of the javacomponent function: http://www.mathworks.com/javacomponent
- Survey regarding usage of the JavaFrame property: http://www.mathworks.com/javaframe
In MathWorks’ words:
In order to extend your ability to build MATLAB apps, we understand you sometimes need to make use of undocumented Java UI technologies, such as the JavaFrame property. In response to your needs, we are working to develop documented alternatives that address gaps in our app building offerings.
To help inform our work and plans, we would like to understand how you are using the JavaFrame property. Based on your understanding of how it is being used within your app, please take a moment to fill out the following survey. The survey will take approximately 1-2 minutes to finish.
I urge anyone who uses one or both of these features to let MathWorks know how you’re using them, so that they could incorporate that functionality into the core (documented) Matlab. The surveys are really short and to the point. If you wish to send additional information, please email George.Caia at mathworks.com.
The more feedback responses that MathWorks will get, the better it will be able to prioritize its R&D efforts for the benefit of all users, and the more likely are certain features to get a documented solution at some future release. If you don’t take the time now to tell MathWorks how you use these features in your code, don’t complain if and when they break in the future…
My personal uses of these features
- Functionality:
- Figure: maximize/minimize/restore, enable/disable, always-on-top, toolbar controls, menu customizations (icons, tooltips, font, shortcuts, colors)
- Table: sorting, filtering, grouping, column auto-sizing, cell-specific behavior (tooltip, context menu, context-sensitive editor, merging cells)
- Tree control
- Listbox: cell-specific behavior (tooltip, context menu)
- Tri-state checkbox
- uicontrols in general: various event callbacks (e.g. mouse hover/unhover, focus gained/lost)
- Ability to add Java controls e.g. color/font/date/file selector panel or dropdown, spinner, slider, search box, password field
- Ability to add 3rd-party components e.g. JFreeCharts, JIDE controls/panels
- Appearance:
- Figure: undecorated (frameless), other figure frame aspects
- Table: column/cell-specific rendering (alignment, icons, font, fg/bg color, string formatting)
- Listbox: auto-hide vertical scrollbar as needed, cell-specific renderer (icon, font, alignment, fg/bg color)
- Button/checkbox/radio: icons, text alignment, border customization, Look & Feel
- Right-aligned checkbox (button to the right of label)
- Panel: border customization (rounded/matte/…)
You can find descriptions/explanations of many of these in posts I made on this website over the years.