File Exchange

image thumbnail

getjframe - Retrieves a figure's underlying Java frame

version (3.53 KB) by Yair Altman
Enable multiple window callbacks and properties not exposed by Matlab


Updated 01 Mar 2019

View License

jframe = getjframe(hFigOrComponent)

GETJFRAME retrieves the current figure (gcf)'s underlying Java frame, thus enabling access to all 35 figure callbacks that are not exposed by Matlab's figure.

Notable callbacks include: FocusGainedCallback, FocusLostCallback, KeyPressedCallback, KeyReleasedCallback, MouseEnteredCallback, MouseExitedCallback, MousePressedCallback, MouseReleasedCallback, WindowActivatedCallback, WindowClosedCallback, WindowClosingCallback, WindowOpenedCallback, WindowStateChangedCallback and 22 others.

The returned jframe object also allows access to other useful window features: 'AlwaysOnTop', 'CloseOnEscapeEnabled', 'Resizable', 'Enabled', 'HWnd' (for those interested in Windows integration) etc. Type "get(jframe)" to see the full list of properties.

GETJFRAME(hFig) retrieves a specific figure's underlying Java frame. hFig is a Matlab handle, or a list of handles (not necessarily figure handle(s) - the handles' containing figure is used).

Usage examples:
get(getjframe,'ListOfCallbacks'); %display list of supported callbacks
set(getjframe,'WindowStateChangedCallback','disp(''Window min/maxed'')')
jframes = getjframe([gcf,hButton]); % get 2 java frames, from 2 figures

Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)

This code heavily relies on undocumented and unsupported Matlab functionality. It works on Matlab 7+, but use at your own risk!

Cite As

Yair Altman (2020). getjframe - Retrieves a figure's underlying Java frame (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (8)

Yair Altman

This utility only works with legacy (Java-based) figures, not with AppDesigner uifigures (which are not Java figures at all, but rather a browser window that displays an HTML web-page).

I can't make it work with the new MATLAB's app-designer UIFigure.

Any ideas?


instead of

worked for me.

Great work. Thank you for keeping this up to date.

This is very useful. I am using it to control minimizing and maximizing the figure windows. I know the potential is much greater.

Vihang Patil


Bob W

Nice utility.


Extra check for additional robustness

Additional fixes for R2014b onward (HG2)

Fix for R2014b (HG2)

Fix for R2011b

Added Matlab figure handle property; improved responsiveness handling; added support for array of handles; added sanity checks for illegal handles

wrong file was initially uploaded by mistake - now fixed

MATLAB Release Compatibility
Created with R2007a
Compatible with any release
Platform Compatibility
Windows macOS Linux