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

2 visualizzazioni (ultimi 30 giorni)
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)

Risposta accettata

Malcolm Lidierth
Malcolm Lidierth il 16 Ago 2012
Modificato: Malcolm Lidierth il 16 Ago 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.

Più risposte (0)

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by