jchooser embeded in GUI - obtain status of buttons and change to save type

2 vues (au cours des 30 derniers jours)
This is a follow on from a previous question.
I am trying to embed a uifile load/save file dialog into another GUI, I'm having issues determining which button was pressed (load/save or cancel) and changing the "open" button to say "Save"
How can I:
1. In the ActionPerformedCallback obtain the jchooser status (i.e. which button was pressed)
2. Change the jchooser to be a save dialog rather than open.
Thanks
import javax.swing.JFileChooser;
d = dialog('windowstyle', 'normal', 'position', [0 0 750 400] );
centerfig ( d )
set ( d, 'visible', 'on' );
[jPanel,hPanel] = javacomponent(javax.swing.JPanel, [], d);
hControl = uicontrol('style','checkbox', 'parent',d,'string','click me', 'units','normalized','position', [0.9 0.8 0.1 0.2]);
set(hPanel, 'units','normalized','position',[0 0 0.9 1.0]);
jchooser = javaObjectEDT('javax.swing.JFileChooser', pwd );
set(handle(jchooser, 'callbackproperties'),'ActionPerformedCallback', 'disp(''Action'')')
% Show the actual dialog
jPanel.add(jchooser)

Réponse acceptée

Malcolm Lidierth
Malcolm Lidierth le 16 Août 2012
Modifié(e) : Malcolm Lidierth le 16 Août 2012
@Robin
Replace 'disp(''Action'')' with a callback
function callback(hObj,evt)
...
end
Within the callback, evt.getActionCommand() will give the button e.g.
evt.getActionCommand()==javax.swing.JFileChooser.APPROVE_SELECTION
will return true for the OK button and
evt.getActionCommand==javax.swing.JFileChooser.CANCEL_SELECTION
for cancel.
For dialog types use e.g.
setDialogType(javax.swing.JFileChooser.OPEN_DIALOG)
Google "grep JFileChooser" to get links to the source code for JFileChooser.

Plus de réponses (0)

Catégories

En savoir plus sur Environment and Settings dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by