设计用户界面
UI设计师具体工作是什么?
UI即User Interface(用户界面)的简称。UI设计从工作内容上来说分为3个方向。它主要是由UI 研究的3个因素决定的,其分别是研究工具,研究人与界面的关系,研究人。研究工具研究界面----图形设计师Graphic UI designer美工,但实际上不是单纯意义上的美术工人,而是软件产品的产品外形设计师。这些设计师大多是美术院校毕业的,其中大部分是有美术设计教育背景,例如工业外形设计,装潢设计,信息多媒体设计等。研究人与界面的关系蓝色代表工具,红色代表关系,绿色代表人研究人与界面的关系---交互设计师,interaction designer在图形界面产生之前,长期以来UI设计师就是指交互设计师。交互设计师的工作内容就是设计软件的操作流程,树状结构,软件的结构与操作规范(spec)等。一个软件产品在编码之前需要作的就是交互设计,并且确立交互模型,交互规范。交互设计师一般都是软件工程师背景居多。研究人研究人----用户测试/研究工程师User experience engineer任何的产品为了保证质量都需要测试,软件的编码需要测试,自然UI设计也需要被测试。这个测试和编码没有任何关系,主要是测试交互设计的合理性以及图形设计的美观性。测试方法一般都是采用焦点小组,用目标用户问卷的形式来衡量UI设计的合理性。这个职位很重要,如果没有这个职位,UI设计的好坏只能凭借设计师的经验或者领导的审美来评判,这样就会给企业带来严重的风险性。用户研究工程师一般是心理学人文学背景比较合适。综上所述UI设计师就是:软件图形设计师、交互设计师和用户研究工程师。 用户体验(User Experience,简称UX或 UE)是一种纯主观的在用户使用一个产品(服务)的过程中建立起来的心理感受。因为它是纯主观的,就带有一定的不确定因素。个体差异也决定了每个用户的真实体验是无法通过其他途径来完全模拟或再现的。但是对于一个界定明确的用户群体来讲,其用户体验的共性是能够经由良好设计的实验来认识到。计算机技术和互联网的发展,使技术创新形态正在发生转变,以用户为中心、以人为本越来越得到重视,用户体验也因此被称做创新2.0模式的精髓。
用swing组件,设计实现用户注册界面,给用户注册界面添加事件处理,单击注册,获取用户信息显示,单
今天刚好有人问过类似的问题.我写了一个. 你参考下.效果图细节等, 你可以自己修改import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class RegFrame extends JFrame { private JTextField name; private JTextField psw; public RegFrame() { JPanel panel = new JPanel(); getContentPane().add(panel, BorderLayout.CENTER); panel.setLayout(new GridLayout(6, 1, 5, 2)); JPanel panel_1 = new JPanel(); panel.add(panel_1); JLabel lblNewLabel = new JLabel("用户名"); panel_1.add(lblNewLabel); name = new JTextField(); panel_1.add(name); name.setColumns(10); JPanel panel_2 = new JPanel(); panel.add(panel_2); JLabel label = new JLabel("密 码"); panel_2.add(label); psw = new JTextField(); panel_2.add(psw); psw.setColumns(10); JPanel panel_3 = new JPanel(); panel.add(panel_3); final JRadioButton rb1 = new JRadioButton("男"); panel_3.add(rb1); JRadioButton rb2 = new JRadioButton("女"); panel_3.add(rb2); ButtonGroup bg = new ButtonGroup(); bg.add(rb1); rb1.setSelected(true); bg.add(rb2); JPanel panel_4 = new JPanel(); panel.add(panel_4); JLabel ageLabel = new JLabel("出生年份"); panel_4.add(ageLabel); String[] nians = { "1989", "1990", "1991", "1992" }; final JComboBox comboBox = new JComboBox(nians); panel_4.add(comboBox); JPanel panel_5 = new JPanel(); panel.add(panel_5); final JCheckBox cb1 = new JCheckBox("蓝球"); panel_5.add(cb1); final JCheckBox cb2 = new JCheckBox("足球"); panel_5.add(cb2); final JCheckBox cb3 = new JCheckBox("游泳"); panel_5.add(cb3); JPanel panel_6 = new JPanel(); panel.add(panel_6); JButton jbreg = new JButton("注册"); panel_6.add(jbreg); JButton jbrest = new JButton("取消"); panel_6.add(jbrest); JPanel panel_7 = new JPanel(); getContentPane().add(panel_7, BorderLayout.SOUTH); JLabel reginfo = new JLabel(" "); panel_7.add(reginfo); setSize(380,300);//窗口大小 setLocationRelativeTo(null);//居中 setDefaultCloseOperation(EXIT_ON_CLOSE);//退出 setTitle("注册窗口");//标题 jbreg.addActionListener(new ActionListener() {//注册按钮的事件 @Override public void actionPerformed(ActionEvent e) { StringBuilder sb = new StringBuilder(); String id = name.getText(); sb.append("用户名:" + id); String pas = psw.getText(); sb.append(" 密码:" + pas); if (rb1.isSelected()) { sb.append(" 性别:" + "男"); } else { sb.append(" 性别:" + "女"); } sb.append(" 出生年份:" + comboBox.getSelectedItem().toString()); sb.append(" 爱好:"); if (cb1.isSelected()) { sb.append(cb1.getText()); } if (cb2.isSelected()) { sb.append(cb2.getText()); } if (cb3.isSelected()) { sb.append(cb3.getText()); } reginfo.setText(sb.toString()); } }); jbrest.addActionListener(new ActionListener() {//重置按钮的事件 @Override public void actionPerformed(ActionEvent e) { name.setText(""); psw.setText(""); rb1.setSelected(true); comboBox.setSelectedIndex(0); cb1.setSelected(false); cb2.setSelected(false); cb3.setSelected(false); reginfo.setText(" "); } }); } public static void main(String[] args) { new RegFrame().setVisible(true); }}
如何设计安全的用户登录功能
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能。下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关系到用户安全的功能,希望大家能从下面的文章中能知道什么样的方法才是一个好的用户登录功能。 用户名和口令 首先,我们先来说说用户名和口令的事。这并不是本站第一次谈论这个事了。如何管理自己的口令让你知道怎么管理自己的口令,破解你的口令让你知道在现代这样速度的计算速度下,用穷举法破解你的口令可能会是一件很轻松的事。在这里我想告诉从开发者的角度上来做设计这个用户名和口令的事。下面一几件规则: 限制用户输入一些非常容易被破解的口令。如什么qwert,123456, password之类,就像twitter限制用户的口令一样做一个口令的黑名单。另外,你可以限制用户口令的长度,是否有大小写,是否有数字,你可以用你的程序做一下校验。当然,这可能会让用户感到很不爽,所以,现在很多网站都提供了UX让用户知道他的口令强度是什么样的(比如这个有趣的UX),这样可以让用户有一个选择,目的就是告诉用户——要想安全,先把口令设得好一点。 千万不要明文保存用户的口令。正如如何管理自己的口令所说的一样,很多时候,用户都会用相同的ID相同的口令来登录很多网站。所以,如果你的网站明文保存的话,那么,如果你的数据被你的不良员工流传出去那对用户是灾难性的。所以,用户的口令一定要加密保存,最好是用不可逆的加密,如MD5或是SHA1之类的有hash算法的不可逆的加密算法。CSDN曾明文保存过用户的口令。(另,对于国内公司的品行以及有关部门的管理方式,我不敢保证国内网站以加密的方式保存你的口令。我觉得,做为一个有良知的人,我们应该加密保存用户的口令) 是否让浏览器保存口令。我们有N多的方法可以不让浏览器保存用户名和口令。但是这可能对用户来说很不爽。因为在真实世界里谁也记得不住那么多的口令。很多用户可能会使用一些密码管理工具来保存密码,浏览器只是其中一种。是否让浏览器保存这个需要你做决定,重点是看一下你的系统的安全级别是否要求比较高,如果是的话,则不要让浏览器保存密码,并在网站明显的位置告诉用户——保存口令最安全的地方只有你的大脑。 口令在网上的传输。因为HTTP是明文协议,所以,用户名和口令在网上也是明文发送的,这个很不安全。你可以看看这篇文章你就明白了。要做到加密传输就必需使用HTTPS协议。但是,在中国还是有很多网站的Web登录方式还在使用ActiveX控件,这可能成为IE6还大量存在的原因。我通常理解为这些ActiveX控件是为了反键盘记录程序的。不过,我依然觉ActiveX控件不应该存在,因为在国外的众多安全很重要的站点上都看不到ActiveX的控件的身影。 用户登录状态 首先,我想告诉大家的是,因为HTTP是无状态的协议,也就是说,这个协议是无法记录用户访问状态的,其每次请求都是独立的无关联的,一笔是一笔。而我们的网站都是设计成多个页面的,所在页面跳转过程中我们需要知道用户的状态,尤其是用户登录的状态,这样我们在页面跳转后我们才知道是否可以让用户有权限来操作一些功能或是查看一些数据。 所以,我们每个页面都需要对用户的身份进行认证。当然,我们不可能让用户在每个页面上输入用户名和口令,这会让用户觉得我们的网站相当的SB。为了实现这一功能,用得最多的技术就是浏览器的cookie,我们会把用户登录的信息存放在客户端的cookie里,这样,我们每个页面都从这个cookie里获得用户是否登录的信息,从而达到记录状态,验证用户的目的。但是,你真的会用cookie吗?下面是使用cookie的一些原则。 千万不要在cookie中存放用户的密码。加密的密码都不行。因为这个密码可以被人获取并尝试离线穷举。所以,你一定不能把用户的密码保存在cookie中。我看到太多的站点这么干了。 正确设计“记住密码”。这个功能简直就是一个安全隐患,我觉得并不是所有的程序员都知道怎么设计这个事。一般的设计是——一时用户勾选了这个功能,系统会生成一个cookie,cookie包括用户名和一个固定的散列值,这个固定的散列值一直使用。这样,你就可以在所有的设备和客户上都可以登录,而且可以有多个用户同时登录。这个并不是很安全。下面是一些更为安全的方法供你参考: (——更新 2011/08/26,原文中有些小错误,并且说的不清楚,重新调整了一下——) 1)在cookie中,保存三个东西——用户名,登录序列,登录token。 用户名:明文存放。 登录序列:一个被MD5散列过的随机数,仅当强制用户输入口令时更新(如:用户修改了口令)。 登录token:一个被MD5散列过的随机数,仅一个登录session内有效,新的登录session会更新它。 2)上述三个东西会存在服务器上,服务器的验证用户需要验证客户端cookie里的这三个事。 3)这样的设计会有什么样的效果,会有下面的效果, a)登录token是单实例登录。意思就是一个用户只能有一个登录实例。 b)登录序列是用来做盗用行为检测的。如果用户的cookie被盗后,盗用者使用这个cookie访问网站时,我们的系统是以为是合法用户,然后更新“登录token”,而真正的用户回来访问时,系统发现只有“用户名”和“登录序列”相同,但是“登录token”不对,这样的话,系统就知道,这个用户可能出现了被盗用的情况,于是,系统可以清除并更改登录序列 和 登录token,这样就可以令所有的cookie失效,并要求用户输入口令。并给警告用户系统安全。 4)当然,上述这样的设计还是会有一些问题,比如:同一用户的不同设备登录,甚至在同一个设备上使用不同的浏览器保登录。一个设备会让另一个设备的登录token和登录序列失效,从而让其它设备和浏览器需要重新登录,并会造成cookie被盗用的假象。所以,你在服务器服还需要考虑- IP 地址, a)如果以口令方式登录,我们无需更新服务器的“登录序列”和 “登录token”(但需要更新cookie)。因为我们认为口令只有真正的用户知道。 b)如果 IP相同 ,那么,我们无需更新服务器的“登录序列”和 “登录token”(但需要更新cookie)。因为我们认为是同一用户有同一IP(当然,同一个局域网里也有同一IP,但我们认为这个局域网是用户可以控制的。网吧内并不推荐使用这一功能)。 c)如果(IP不同 &&没有用口令登录),那么,“登录token”就会在多个IP间发生变化(登录token在两个或多个ip间被来来回回的变换),当在一定时间内达到一定次数后,系统才会真正觉得被盗用的可能性很高,此时系统在后台清除“登录序列”和“登录token“,让Cookie失效,强制用户输入口令(或是要求用户更改口令),以保证多台设备上的cookie一致。 不要让cookie有权限访问所有的操作。否则就是XSS攻击,这个功能请参看新浪微博的XSS攻击。下面的这些功能一定要用户输入口令: 1)修改口令。 2)修改电子邮件。(电子邮件通过用来找回用户密码) 3)用户的隐私信息。 4)用户消费功能。 权衡Cookie的过期时间。如果是永不过期,会有很不错的用户体验,但是这也会让用户很快就忘了登录密码。如果设置上过期期限,比如2周,一个月,那么可能会好一点,但是2周和一个月后,用户依然会忘了密码。尤其是用户在一些公共电脑上,如果保存了永久cookie的话,等于泄露了帐号。所以,对于cookie的过期时间我们还需要权衡。 找回口令的功能 找回口令的功能一定要提供。但是很多朋友并不知道怎么来设计这个功能。我们有很多找回口令的设计,下面我逐个点评一下。 千万不要使用安全问答。事实证明,这个环节很烦人,而且用户并不能很好的设置安全问答。什么,我的生日啊,我母亲的生日,等等。因为今天的互联网和以前不一样了,因为SNS,今天的互联比以前更真实了,我可以上facebook,开心,人人网,LinkedIn查到你的很多的真实的信息。通过这些信息我可以使用安全问答来重设你的口令。这里需要说一下 Facebook,Facebook的安全问答很强大,还要你通过照片认人,呵呵。 不要重置用户的密码。因为这有可能让用户的密码遭到恶意攻击。当然,你要发个邮件给用户让其确认,用户点击邮件中的一个链接,你再重置。我并不推荐这样的方法,因为用户一般都会用笔记下来这个很难记的口令,然后登录系统,因为登录系统时使用了“记住密码”的功能,所以导致用户不会去修改密码,从而要么导到被写下来的密码被人盗取,要么又忘记了密码。 好一点的做法——通过邮件自行重置。当用户申请找回口令功能的时候,系统生成一个MD5唯一的随机字串(可通过UID+IP+timestamp+随机数),放在数据库中,然后设置上时限(比如1小时内),给用户发一个邮件,这个连接中包含那个MD5的字串的链接,用户通过点击那个链接来自己重新设置新的口令。 更好一点的做法——多重认证。比如:通过手机+邮件的方式让用户输入验证码。手机+邮件可能还不把握,因为手机要能会丢了,而我的手机可以访问我的邮箱。所以,使用U盾,SecureID(一个会变化的6位数token),或是通过人工的方式核实用户身份。当然,这主要看你的系统的安全级别了。 口令探测防守 使用验证码。验证码是后台随机产生的一个短暂的验证码,这个验证码一般是一个计算机很难识别的图片。这样就可以防止以程序的方式来尝试用户的口令。事实证明,这是最简单也最有效的方式。当然,总是让用户输入那些肉眼都看不清的验证码的用户体验不好,所以,可以折中一下。比如Google,当他发现一个IP地址发出大量的搜索后,其会要求你输入验证码。当他发现同一个IP注册了3个以上的gmail邮箱后,他需要给你发短信方式或是电话方式的验证码。 用户口令失败次数。调置口令失败的上限,如果失败过多,则把帐号锁了,需要用户以找回口令的方式来重新激活帐号。但是,这个功能可能会被恶意人使用。最好的方法是,增加其尝试的时间成本(以前的这篇文章说过一个增加时间成本的解密算法)。如,两次口令尝试的间隔是5秒钟。三次以上错误,帐号被临时锁上30秒,5次以上帐号被锁1分钟,10次以上错误帐号被锁4小时…… 系统全局防守。上述的防守只针对某一个别用户。恶意者们深知这一点,所以,他们一般会动用“僵尸网络”轮着尝试一堆用户的口令,所以上述的那种方法可能还不够好。我们需要在系统全局域上监控所有的口令失败的次数。当然,这个需要我们平时没有受到攻击时的数据做为支持。比如你的系统,平均每天有5000次的口令错误的事件,那么你可以认为,当口令错误大幅超过这个数后,而且时间相对集中,就说明有黑客攻击。这个时候你怎么办?一般最常见使用的方法是让所有的用户输错口令后再次尝试的时间成本增加。 最后,再说一下,关于用户登录,使用第三方的 OAuth 和 OpenID 也不失为一个很不错的选择。
html网页设计:一个简单的登录界面代码!
<!doctype html><html><head><meta charset="utf-8"><link href="main.css" type="text/css" rel="stylesheet"><title>登陆界面</title></head><body> <div class="login_ico"> <img src="images/login_ico.png"> </div> <div class="login_putin"> <ul> <li><input type="text" ></li> <li><input type="password" ></li> </ul> </div> <div class="login_btn"> <input type="submit" value="登陆"> </div></body></html>样式 :*{ margin:0; padding:0;}li{ list-style-type:none; margin:0; padding:0;}a{ text-decoration:none; color:#000;}/*---------------------按钮-----------------------------*/.login_putin ul li input{ margin: 0; width:70%; padding: 1em 2em 1em 5.4em; -webkit-border-radius:.3em; -moz-border-radius: .3em; border: 1px solid #999;}.login_btn{ width:300px; margin:40px auto 0 auto;}.login_btn input{ width:100%; margin:0; padding:.5em 0; -webkit-border-radius:.3em; -moz-border-radius: .3em; border:#1263be solid 1px; background:#1b85fd; color:#FFF; font-size:17px; font-weight:bolder; letter-spacing:1em;}.login_btn input:hover{ background:#1263be; }
Java编程 设计一个图形用户界面。界面包括三个单选按钮、两个复选框、一个列表、一个文本区和一个按
setVisible(true); this,30); panel;; } if(this.getText() + "选择兴趣爱好" textArea = new JTextArea(40.setLayout(new FlowLayout(3)); panel.add(huiButton).huiButton.JPanel;import javax.huiButton.getText() + "程序如下; buttonGroup.add(musicBox); setBounds(100;确定".awt.add(hanButton); panel.add(manButton).JButton;; } if(this;\n"\n", 280);import javax.swing.JCheckBox;import javax.isSelected()) { info += this;汉族").isSelected()) { info += this; musicBox = new JCheckBox("唱歌"); danceBox = new JCheckBox("跳舞").swing;);public class JFrameDemo extends JFrame implements ActionListener{ private JPanel panel; private JButton button; private JTextArea textArea; private JCheckBox musicBox; private JCheckBox danceBox; private JRadioButton hanButton; private JRadioButton manButton; private JRadioButton huiButton; private ButtonGroup buttonGroup;"import javax.swing.ButtonGroup;import javax.hanButton.musicBox.isSelected()) { info += this.musicBox;; } this.textArea.JFrame;import javax; panel.getText() + ".FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; huiButton = new JRadioButton("回族"); hanButton = new JRadioButton(".add(hanButton); buttonGroup.add(manButton).isSelected()) { info += this; panel.getText() + " add(panel); setTitle("\n"; } if(this, 100, 400.JRadioButton;import javax;\n".add(button); setResizable(false); public JFrameDemo() { panel = new JPanel(); button = new JButton(".add(danceBox).swing.manButton.JTextArea; panel.add(textArea);).getText() + "; } if(this.swing; panel.swing.setText(info);; if(this.manButton.button.addActionListener(this); } public static void main(String[] args) { new JFrameDemo(); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource() == this.button) { String info = " manButton = new JRadioButton("满族"); buttonGroup = new ButtonGroup(); buttonGroup.add(huiButton).danceBox.isSelected()) { info += this.danceBox;\n".swing.hanButton; panel:import java; } }} 有问题欢迎提问,满意请采纳,谢谢
基于Matlab&GUI的用户登录界面设计
要看你是从事网站界面设计还是软件界面设计。网站界面设计,必须了解一些简单的html、div、css样式表等基本语言;软件界面设计,就要了解其产品所用的是什么工具做的,软件和硬件的兼容性问题(性能问题)。对于设计软件,常用的有photoshop、网页3剑客、UIDesigner等工具就可以了。
是软件界面,设计已做好,就差代码
Java 用户界面设计 求界面代码
一: 首先弄清题目的意思 A.需要的主要组件列表: 1. 创建一个窗口,窗口标题叫Information 2. 3个标签, 用于显示文字 Name Number Class 3. 3个文本框, 用于填写信息 4. 1个按钮, 文字是确认 5. 1个文本域 B.业务逻辑 1. 当点击按钮确认的时候, 把 文本框的信息显示到文本域 C.设计的主要技术 JLabel , JButton, JTextField ...等, 都是swing的组件 , 所以应该使用swing进行创建二: 确定使用的布局 swing虽然重写了大部分的组件, 但是布局, 依旧沿袭awt技术 分析图片上的布局: 至少有2种方法可以实现, 方法一: 绝对布局 , 优点: 配合可视化GUI拖曳, 可以完美的实现图上的组件的位置 但是缺点也是致命的, 不同的操作系统平台下, 可能会出现位置的移动, 只适合开发平台, 移植效果差 . 所以不推荐使用 方法二: 灵活的表格布局, 配合流式布局 , 所有操作系统下,显示效果都比较统一. 三: 效果图四: 参考代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475import java.awt.*;import java.awt.event.*;import javax.swing.*; public class FrameDemo extends JFrame { //申明需要的组件 private final JTextField jtf1,jtf2,jtf3; private final JTextArea jta; public FrameDemo() { setTitle("Information");//设置窗口标题 setSize(320, 360);//设置窗口大小 setLocationRelativeTo(null);//设置窗口居中 setDefaultCloseOperation(EXIT_ON_CLOSE);//设置关闭时退出虚拟机 getContentPane().setLayout(new FlowLayout());//设置窗口布局为流式布局 JPanel jp = new JPanel(new GridLayout(4, 2));//设置jp面板为表格布局4行2列 //第一行 JPanel jp01 = new JPanel(); JLabel jl1 = new JLabel("Name:"); jp01.add(jl1); JPanel jp1 = new JPanel(); jtf1 = new JTextField(8); jp1.add(jtf1); //第二行 JPanel jp02 = new JPanel(); JLabel jl2 = new JLabel("Number:"); jp02.add(jl2); JPanel jp2 = new JPanel(); jtf2 = new JTextField(8); jp2.add(jtf2); //第三行 JPanel jp03 = new JPanel(); JLabel jl3 = new JLabel("Class:"); jp03.add(jl3); JPanel jp3 = new JPanel(); jtf3 = new JTextField(8); jp3.add(jtf3); //第四行 JPanel jp04 = new JPanel(); JLabel jl4 = new JLabel(""); jp04.add(jl4); JPanel jp4 = new JPanel(); JButton jb = new JButton("确认"); jp4.add(jb); jp.add(jp01); jp.add(jp1); jp.add(jp02); jp.add(jp2); jp.add(jp03); jp.add(jp3); jp.add(jp04); jp.add(jp4); getContentPane().add(jp); jta = new JTextArea(); jta.setColumns(20);//设置文本域的大小 jta.setEditable(false);//设置文本域不可编辑 jta.setBackground(jp.getBackground());//设置文本域的背景色和面板一样 getContentPane().add(jta); jb.addActionListener(new ActionListener() {//给按钮添加事件 public void actionPerformed(ActionEvent e) {//点击按钮,显示信息到文本域 String name = jtf1.getText(); String number = jtf2.getText(); String clazz = jtf3.getText(); jta.setText("You name is "+name+" number is "+number+" class is "+clazz); } }); } public static void main(String[] args) { new FrameDemo().setVisible(true);//创建窗口,被设置为可见 }}五: 拓展 虽然图形界面的实现方法是多样的, 我们一定要根据具体情况, 选择一个比较优化的 合理的, 符合业务逻辑的实现方法
交互设计与界面设计之间有什么区别?
嘿设汇app上很多有关设计的回答很全面,分享给你,希望对你有帮助。交互设计 交互设计的目的是使产品让用户能简单使用。 任何产品功能的实现都是通过人和机器的交互来完成的。因此,人的因素应作为设计的核心被体现出来。交互设计的原则如下: 1) 有清楚的错误提示。误操作后,系统提供有针对性的提示。 2) 让用户控制界面。“下一步”、“完成”,面对不同层次提供多种选择,给不同层次的用户提供多种可能性。 3) 允许兼用鼠标和键盘。同一种功能,同时可以用鼠标和键盘。提供多种可能性。 4) 允许工作中断。例如用手机写新短信的时候,收到短信或电话,完成后回来仍能够找到刚才正写的新短信。 5) 使用用户的语言,而非技术的语言。 6) 提供快速反馈。给用户心理上的暗示,避免用户焦急。 7) 方便退出。如手机的退出,是按一个键完全退出,还是一层一层的退出。提供两种可能性。 8)导航功能。随时转移功能,很容易从一个功能跳到另外一个功能。 9)让用户知道自己当前的位置,使其做出下一步行动的决定。 视觉设计 在结构设计的基础上,参照目标群体的心理模型和任务达成进行视觉设计。包括色彩、字体、页面等。视觉设计要达到用户愉悦使用的目的。视觉设计的原则如下: 1)界面清晰明了。允许用户定制界面。 2) 减少短期记忆的负担。让计算机帮助记忆,例:User Name,、Password、IE进入界面地址可以让机器记住。 3) 依赖认知而非记忆。如打印图标的记忆、下拉菜单列表中的选择 4) 提供视觉线索。图形符号的视觉的刺激;GUI(图形界面设计):Where, What, Next Step 5) 提供默认(default)、撤销(undo)、恢复(redo)的功能 6) 提供界面的快捷方式 7) 尽量使用真实世界的比喻。如:电话、打印机的图标设计,尊重用户以往的使用经验。 8) 完善视觉的清晰度。条理清晰;图片、文字的布局和隐喻不要让用户去猜。 9)界面的协调一致。如手机界面按钮排放,左键肯定;右键否定;或按内容摆放。 10) 同样功能用同样的图形。 11)色彩与内容。整体软件不超过5个色系,尽量少用红色、绿色。近似的颜色表示近似的意思。
用户界面设计有哪些菜单种类?它们各自有哪些特点
图形用户界面技术的特点体现在三方面:多视窗技术、菜单技术和联机帮助。我们从这三个方面来说明图形用户界面的方便所在,这一部分的内容几乎是所有图形用户界面软件共有的内容。多视窗技术在Windows环境中,计算机屏幕显示为一个工作台,用户的主工作区域就是桌面。工作台将你的工作显示在称为"窗口"的矩形区域内,你可以在窗口中对应用程序和文档进行操作。所谓多窗口就是同时能在同一屏幕上打开多个窗口,也称多视窗技术,以下列出多视窗的几点优越性:1、友好的操作环境:窗口系统可以提供友好的、菜单驱动的、具有图形功能的用户界面。每个窗口都由标题、菜单、控制按钮、滚动条、边框等元素组成。用户可以方便地使用鼠标打开和关闭窗口,通过操作窗口组成部件来实现窗口的移动、尺寸改变和多窗口的布局。用户通过窗口实施各种上机操作,进行人机交互。由于所有窗口具有统一的风格和相似的操作方式,用户只要领会一种系统的窗口操作要领,便可触类旁通。 2、一屏多用:一个多窗口的屏幕,从功能上说,相当于多个独立的屏幕,所以能有效地增加屏幕在同一时间所显示的信息容量。3、任务切换:窗口系统是用户可以同时运行多道程序的一个集成化环境。模拟人们日常工作中同时干几件事的情景,用户可以同时打开几个窗口以运行多个应用程序,并可实现在它们之间的快速转换。但是在同一时间只能有一个窗口是活动窗口,允许接受用户输入的数据或命令,其他窗口都是非活动窗口。活动窗口的醒目标志则是清晰的窗口标题栏及其任务名,而且它会摆放在其他窗口的最上面而不会被遮挡。 4、资源共享与信息共享:操作系统的资源是CPU、存储器、I/O设备等,窗口系统的资源还包括窗口、事件等,这些资源为各应用程序所共享。
以用户为中心的界面设计都有哪些原则
1.简易性 界面的简洁是要让用户便于使用、便于了解、并能减少用户发生错误选择的可能性。 2.用户语言 界面中要使用能反应用户本身的语言,而不是用户界面设计者的语言,即“用户至上”原则。 3.记忆负担最小化 人脑不是电脑,在设计界面时必须要考虑人类大脑处理信息的限度。人类的短期记忆极不稳定、有限,24小时内存在25%的遗忘率。所以对用户来说,浏览信息要比记忆更容易。 4.一致性 是每一个优秀界面都具备的特点。界面的结构必须清晰且一致,风格必须要与内容相一致。 5.清楚 在视觉效果上便于理解和使用。 6.用户的熟悉程度 用户可通过已掌握的知识来使用界面,但不应超出一般常识。 7.从用户的观点考虑 想用户所想,做用户所做。用户总是按照他们自己的方法理解和使用。 通过比较两个不同世界(真实与虚拟)的事物,完成更好的设计。如:书籍对比竹简。 8.排列 一个有序的界面能让用户轻松的使用。 9.安全性 用户能自由的作出选择,且所有选择都是可逆的。在用户作出危险的选择时有信息介入系统的提示。 10.灵活性 简单来说就是要让用户方便的使用,但不同于上述。即互动多重性,不局限于单一的工具(包括鼠标、键盘或手柄)。 11.人性化 高效率和用户满意度是人性化的体现。应具备专家级和初级玩家系统,即用户可依据自己的习惯定制界面,并能保存设置。