Borrar filtros
Borrar filtros

How to display an error message in GUI?

13 visualizaciones (últimos 30 días)
slumberk
slumberk el 17 de Feb. de 2011
I have a figure of table. The user will insert a data into the table. If the user suddenly inserts the wrong data, the table will be 'NaN'. My question is how I want to make the table does not display 'NaN' on the table but I want an error message appear. I have this coding:
function Mytable1_CreateFcn(hObject, eventdata, handles)
if isnan(Mytable1)
set(hObject, 'Data', 0);
errordlg('Input must be a number','Error');
end
handles.Mytable2 = hObject;
guidata(hObject,handles);
But there is an error with this code. Is this coding are correct to answer my question?

Respuesta aceptada

Walter Roberson
Walter Roberson el 17 de Feb. de 2011
You wouldn't put the test in the create function, you would put the test in the edit function.
You may also want to uiwait() around the errordlg() so that you force the user to acknowledge the error. Your present code pops up the error but the user can hide it and continue on their way.
  3 comentarios
Walter Roberson
Walter Roberson el 17 de Feb. de 2011
ed = errordlg('Input must be a number','Error');
set(ed, 'WindowStyle', 'modal');
uiwait(ed);
It might be possible to make it impossible for the user to hide it, but it probably isn't worth the bother: with the above code, the user will not be able to proceed with anything else.
Paulo Silva
Paulo Silva el 17 de Feb. de 2011
To show errors I often prefer to have them inside a text box, it's also good to show warnings and important info, also changing the text colors with the message type is great.

Iniciar sesión para comentar.

Más respuestas (2)

slumberk
slumberk el 18 de Feb. de 2011
@walter and paulo:
I did this coding on Mytable1_CellEditCallback. It still have error. Is this code true??
Mytable1=get(hObject,'Data')
if isnan(Mytable1)
set(hObject, 'Data', 0);
h=errordlg('Oh noes!','Error');
set(h, 'WindowStyle', 'modal');
uiwait(h);
return
end
handles.Mytable2 = hObject;
guidata(hObject,handles);
This is the error:
Mytable1 =
[1] [] []
[] [] []
[] [] []
[] [] []
??? Undefined function or method 'isnan' for input arguments of type 'cell'.
Error in ==> fyp_editor>Mytable1_CellEditCallback at 795 if ~isnan(Mytable1)
Error in ==> gui_mainfcn at 96 feval(varargin{:});
Error in ==> fyp_editor at 42 gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)fyp_editor('Mytable1_CellEditCallback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uitable CellEditCallback
  4 comentarios
Matt Fig
Matt Fig el 18 de Feb. de 2011
No, it is not a matrix. If it was a matrix, the error message wouldn't say,
"??? Undefined function or method 'isnan' for input arguments of type 'cell'."
Paulo Silva
Paulo Silva el 18 de Feb. de 2011
all(cellfun(@isempty,Mytable1))

Iniciar sesión para comentar.


slumberk
slumberk el 18 de Feb. de 2011
@matt: i dont realy get what you are asking. So i just paste the code that from pushbuttons callback:
data1 = get(handles.Mytable1,'Data');
data2 = get(handles.Mytable2,'Data');
cost = cell2mat(get(handles.Mytable1,'Data'));
limit = cell2mat(get(handles.Mytable2,'Data'));
Is this answer you?
  2 comentarios
Matt Fig
Matt Fig el 18 de Feb. de 2011
Where is this code in relation to the code you posted previously? If you pay attention to the error messages, it clearly says you are trying to use ISNAN with a cell array.
slumberk
slumberk el 18 de Feb. de 2011
@matt: Ok.. Let me tell you true process. I have a figure of table and a pushbuttons. The user will insert the data into the table but assume the user accidentally insert a wrong data. For example:
ALPHA BETA GAMMA
C1
C2
C3
If the user only want to use C1 and C2 but the user accidentally insert a data on C3 then he delete the data from C3 at column ALPHA and the column ALPHA at row C3 will become NAN. So how i want an error message says 'Please complete C3' and I dont want it become 'NAN' but i want to leave it blank. How can i make it?

Iniciar sesión para comentar.

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by