matlab界面实现密码输入功能
请问有谁知道MATLAB的界面设计中,输入密码是如何实现的?即把输入的字符,用****代替。以下的m文件可以实现,你可以学习一下,但声明此文件是我在学习是从网上下载的,由于忘记了出处,这里没有给出原创者,此文件仅用于学习交流!
回复 2 # zhouyang664 的帖子
可否将a2.m直接贴出
不然打开, 许多字体会成乱码 在罗老师的《matlab GUI设计学习手记》书中有程序
源程序也可以在北京航空航天大学的出版社下载的到function varargout = a2(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton',gui_Singleton, ...
'gui_OpeningFcn', @a2_OpeningFcn, ...
'gui_OutputFcn',@a2_OutputFcn, ...
'gui_LayoutFcn',[] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
= gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function a2_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
javaFrame = get(hObject, 'JavaFrame');
javaFrame.setFigureIcon(javax.swing.ImageIcon('icon1.jpg'));
% = xlsread('user_information.xls');
% if ~iscellstr(raw)
% for i = 1 : numel(raw)
% n(i) = isnumeric(raw{i});
% end
% raw{n} = num2str(raw{n});
% end
handles.user = 'qibbxxt';%raw(2 : end, 1)';
handles.code = {'12358132134'};%raw(2 : end, 2)';
guidata(hObject, handles);
function varargout = a2_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function login_user_Callback(hObject, eventdata, handles)
function login_user_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject, 'BackgroundColor', 'white');
else
set(hObject, 'BackgroundColor', get(0, 'defaultUicontrolBackgroundColor'));
end
function log_Callback(hObject, eventdata, handles)
user = get(handles.login_user, 'string');
code =get(gcf,'userdata');
users = handles.user;
codes = handles.code;
n = find(strcmp(users, {user}));
if ~isempty(n) && isequal(codes{n}, code)
h = msgbox('登陆成功!');
uiwait(h);
delete(gcf);
% figure(1)
% set(1, 'name', '系统界面');
test_readxls_2;
else
errordlg('用户名或密码错误!', '错误提示');
set(handles.login_code, 'string', '')
set(hObject, 'userdata', '')
end
function log_KeyPressFcn(hObject, eventdata, handles)
if double(get(gcf, 'Currentcharacter')) == 13
user = get(handles.login_user,'string');
code = get(gcf, 'userdata');
users = handles.user;
codes = handles.code;
n = find(strcmp(users,{user}));
if ~isempty(n) && isequal(codes{n}, code)
h = msgbox('登陆成功!');
uiwait(h);
delete(gcf);
figure(1)
set(1, 'name', '系统界面');
else
errordlg('用户名或密码错误!', '错误提示');
set(handles.login_code, 'string', '')
set(hObject, 'userdata', '')
end
end
function figure1_KeyPressFcn(hObject, eventdata, handles)
c = get(hObject,'Currentcharacter');
if isstrprop(c,'graphic')
set(hObject, 'userdata', )
set(handles.login_code, 'string', )
else
log_KeyPressFcn(hObject, eventdata, handles);
val = double(c);
if ~isempty(val) && val == 8
str = get(hObject, 'userdata');
if ~isempty(str)
str(end) = [];
end
set(hObject,'userdata',str)
str2 = get(handles.login_code,'string');
if ~isempty(str2)
str2(end) = [];
end
set(handles.login_code,'string',str2)
end
end
function login_user_KeyPressFcn(hObject, eventdata, handles)
log_KeyPressFcn(hObject, eventdata, handles);
回复 3 # Happy99 的帖子
在matlab中打开就没有问题,用记事本打开有乱码应该是回车键显示成黑方框了吧! 回复 5 # zhouyang664 的帖子
谢谢关心, 不是回车键的问题! 我用的无法显示简体中文:@) 回复 6 # Happy99 的帖子
我也碰到过无法显示中文的情况!
开始我以为是matlab的事儿,后来重装之后还是,最后发现是字体设置不支持中文,打开preferences字体设置选一个中文字体看一下试试吧! 回复 7 # zhouyang664 的帖子
虽然很少使用中文, 但我用的可以显示繁体, 无法显示简体中文, 可能没有相对应的码吧 但奇怪的是从网页复制下来的又可以显示简体中文, 但存完後再打开, 会有些显示有些不显示
电脑的东东真的不行:@L
还好很少使用中文输出 回复 4 # qibbxxt 的帖子
很好...share
页:
[1]