File Exchange

image thumbnail

GetJFrame - Retrieves a figure's underlying Java frame

version 1.2 (6.69 KB) by

Enable multiple window callbacks and properties not exposed by Matlab

4.66667
3 Ratings

10 Downloads

Updated

View License

Syntax:
  jframe = getjframe(hFigOrComponent)
 
Description:
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).
 
Examples:
   get(getjframe,'ListOfCallbacks'); %display list of supported callbacks
   set(getjframe,'WindowStateChangedCallback','disp(''Window min/maxed'')')
   set(getjframe,'WindowDeiconifiedCallback',@winMaximizedCallback)
   set(getjframe,'WindowIconifiedCallback',{@winMinimizedCallback,mydata})
   set(getjframe,'CloseOnEscapeEnabled','on')
   jframes = getjframe([gcf,hButton]); % get 2 java frames, from 2 figures
 
Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)
 
Warning:
This code heavily relies on undocumented and unsupported Matlab functionality. It works on Matlab 7+, but use at your own risk!

Comments and Ratings (4)

using
javax.swing.SwingUtilities.getWindowAncestor(jFrame.getAxisComponent);

instead of
jFrame.fHG2Client

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

Great!!

Bob W

Nice utility.

Updates

1.2

Fix for R2014b (HG2)

1.1

Fix for R2011b

wrong file was initially uploaded by mistake - now fixed

MATLAB Release
MATLAB 7.4 (R2007a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video