Code covered by the BSD License  

Highlights from
41 Complete GUI Examples

  • GUI_1() Demonstrate how to delete an entry from a uicontrol string.
  • GUI_10() Demonstrate how to make an image visible or invisible by pushbutton.
  • GUI_11()
  • GUI_12() Demonstrate how to control the mouse pointer from a GUI.
  • GUI_13() Demonstrate how to display & change a slider's position with an edit box.
  • GUI_14() Demonstrate colored text in a listbox, & how extract user's choice.
  • GUI_15() Demonstrate an edit text which has copyable but unchangeable text.
  • GUI_16() Demonstrate display & change a slider's position & limits with edit boxes
  • GUI_17() Demonstrate how to have a running clock in a GUI, and timer use.
  • GUI_18() Demonstrate the use of the buttondownfcn for an axes.
  • GUI_19() Demonstrate how to keep track of the number of times an action is taken
  • GUI_2() Demonstrate how to add a new entry to a uicontrol string.
  • GUI_20() Demonstrate how to get the chosen string from a popup.
  • GUI_21() Demonstrate how to get selection from a popup to an edit box & vis versa.
  • GUI_22() Demonstrate how to get selection from a popup to an edit box & vis versa.
  • GUI_23() Demonstrate finding which figure was current before callback execution.
  • GUI_24() Demonstrate how to get data from one GUI to another (data passing).
  • GUI_25() Demonstrate how to make an image loader.
  • GUI_26() Demonstrate how to make the choices in several popups mutually exclusive.
  • GUI_27() Demonstrate how to display the current location of the mouse in an axes.
  • GUI_28() Demonstrate uicontextmenu for an axes click.
  • GUI_29() Demonstrate the use of a uicontrol to manipulate an axes from a GUI,
  • GUI_3() Demonstrate how to hide a uicontrol from the user.
  • GUI_30() Same as GUI_29, except uses callback strings.
  • GUI_31() Demonstrate multiple uicontrol manipulations based on user choices.
  • GUI_32(str) Demonstrate how to get data from a GUI into the base workspace without
  • GUI_33() Demonstrate how to export data with context menu.
  • GUI_34() Demonstrate how to make a simple printscreen GUI. Note that this does
  • GUI_35() Demonstrate how to use toggle buttons to mimic tabbed panels.
  • GUI_36() Demonstrate how to make a custom dialog box which returns information.
  • GUI_37(str,time_out) Demonstrate how to make a password editbox, and nested function
  • GUI_38() Demonstrate bringing the focus to the figure after callback using JAVA.
  • GUI_39() Demonstrate use of nested functions for callbacks and other functions.
  • GUI_4() Demonstrate how to make a multiline editbox.
  • GUI_40() Demonstrate how to use an image as a background of a GUI.
  • GUI_41() Demonstrate how to save and load the state of a GUI system.
  • GUI_5() Demonstrate how to use a pushbutton to delete bits of string and how to
  • GUI_6() Demonstrate how to update one uicontrol with data from others.
  • GUI_7() Demonstrate how to store choice counters for multiple user choices.
  • GUI_8() Demonstrate how to tell which button in a uibuttongroup is selected.
  • GUI_9() Demonstrate one way to let the user know a process is running.
  • previewGUIs() This is a helper GUI which lets the user quickly view all of the example
  • contents.mSyntax Considerations for reading the M-Code:
  • View all files

41 Complete GUI Examples


Matt Fig (view profile)


27 Jul 2009 (Updated )

41 working GUIs to read and learn.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

function [] = GUI_38()
% Demonstrate bringing the focus to the figure after callback using JAVA.
% This is an extension of GUI_5.  In this case we have both a keypressfcn
% and a buttonpressfcn for the figure.  Here the word Keypress is printed
% to the command window when a key is pressed while the figure has focus.
% Likewise the word ButtonDown is printed to the command window when the
% mouse is pressed in an area of the figure which is not over a uicontrol.
% When the GUI is first created, the figure has focus, so pressing a key
% triggers the keypressfcn of the figure. After pushing the pushbutton,
% however, the uicontrol takes focus.  In order to make it so the user does
% not have to click in the figure window to give focus back to the figure,
% we simulate a mouseclick in the figure at the end of the callback for the
% pushbutton.  In some versions of MATLAB we could do a similar thing
% without calling JAVA, but here we use JAVA for the sake of using JAVA.
% Note that we must write the buttondownfcn for the figure such that the
% JAVA mouseclick doesn't trigger it.  
% The JAVA code is taken from a newsgroup post by Jan Simon.  
% See Yair Altman's website for many more examples.
% Author: Matt Fig
% Date: 7/15/2009
S.TF = true;
S.ja = java.awt.Robot;   % Define the java AWT object.  
S.fh = figure('units','pixels',...
              'position',[300 300 300 100],...
S.pb = uicontrol('style','push',...
                 'position',[20 10 260 30],...
S.tx = uicontrol('style','text',...
                 'position',[20 50 260 30],...

function [] = pb_call(varargin)
% Callback for the pushbutton.
S = varargin{3};  % Get the structure.
T = get(S.tx,'string');  % Get the current string.

if isempty(T)
    set(S.pb,'backgroundcolor',[1 .5 .5],'string','Nothing to Delete!')
    set(S.tx,'str',T(1:end-1));  % Delete the last character in string.

pos = get(S.fh, 'Position');  % User might have moved figure.
pointpos = get(0,'pointerlocation');  % Current pointer location.
set(0, 'PointerLocation', [pos(1),pos(2)]);  % Put pointer at corner of figure.
% Now we simulate a mouseclick on the figure using the JAVA.
S.TF = false;  % This tells the fh_bdfcn that it was JAVA clicking.
set(S.fh,'buttondownfcn',{@fh_bdfcn,S})  % Update with the new S.TF
S.ja.mousePress(java.awt.event.InputEvent.BUTTON1_MASK);  % Click down
S.ja.mouseRelease(java.awt.event.InputEvent.BUTTON1_MASK); % Let up.
set(0,'pointerlocation',pointpos);  % Put the pointer back.
pause(.025)   % drawnow does NOT work here.
S.TF = true;  % So that the user's clicks in figure will work.
set(S.fh,'buttondownfcn',{@fh_bdfcn,S})  % Update the structure.

function [] = fh_kpfcn(varargin)
% Keypressfcn for figure.
disp('       Keypress')  % Just so we know that it is working.

function [] = fh_bdfcn(varargin)
% ButtonDownFcn for figure.
S = varargin{3};

if S.TF
    % We use the If Statement because we don't want the buttondownfcn to
    % execute when the button was pushed by JAVA.  All code for the
    % function should go into here except the structure extraction.
    disp('           ButtonDown')  % Just so we know that it is working.

Contact us