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 Version History

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 (2021). 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).

Shaul Shvimmer

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

Any ideas?

Khaled Janada

Mario Koddenbrock

Michael Hubatka


instead of

worked for me.

Jason Nicholson

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.

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

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!