当前位置: 主页 > 科技企业 >露露公主中文版_基于C++的人机交互界面 >

露露公主中文版_基于C++的人机交互界面

基于C++的人机交互界面


VC++的MFCvckbase.com
什么是交互式界面设计
推荐答是解释了什么叫交互设计。
用户为中心的设计流程,关注用户用流畅度和方便性,符合用户使用习惯的解决方案。交互不一定需要很华丽的界面,但是使用过程肯定是很人性化,减少用户思考返回的次数。”

在电子杂志中 在电脑或者手机 或者ipad的展示上都有很大差距。
具体可以理解为 用户所做的动作,系统都可以对用户所做的动作进行反馈。
小到翻页的小动画 大到查看一个汽车时 点哪里哪里放大 甚至是在翻书思考时系统蹦出的一句注意保持视力。这些微小的或者是复杂的体系 从视觉上 表现形式上 系统设置里 都可以认为是具有交互性的。甚至说一个电子杂志提供了人与人相互交流 即时点评之类的也可以说具有交互性。

具体我的建议是去观看一些苹果ipad上的电子杂志 。文字能体现的太小了。去看看那些 感受你手指每一个动作杂志会发生的变化 。你就理解什么叫交互了。

不过是更深层次的挖掘人类的需求 为人提供更多的服务以用户为中心计流程,关注用户的使用流畅度和方便符合用户使用习惯的解决方案。交一定需要很华丽的界面,但是使用过程肯定是很人性化,减少用户思考返回的次数。”

在电子杂志中 在电脑或者手机 或者ipad的展示上都有很大差距。
具体可以理解为 用户所做的动作,系统都可以对用户所做的动作进行反馈。
小到翻页的小动画 大到查看一个汽车时 点哪里哪里放大 甚至是在翻书思考时系统蹦出的一句注意保持视力。这些微小的或者是复杂的体系 从视觉上 表现形式上 系统设置里 都可以认为是具有交互性的。甚至说一个电子杂志提供了人与人相互交流 即时点评之类的也可以说具有交互性。

具体我的建议是去观看一些苹果ipad上的电子杂志 。文字能体现的太小了。去看看那些 感受你手指每一个动作杂志会发生的变化 。你就理解什么叫交互了。

不过是更深层次的挖掘人类的需求 为人提供更多的服务随着设计行业的发展,设计规范日渐重要,好的设计规范标准可以大大提高工作效率和工作成功。
可以属于蓝湖设计规范来做设计管理交互设计是一种如何让产品易用,有效而让人愉悦的技术,它致力于了解目标用户和他们的期望,了解用户在同产品交互时彼此的行为,了解“人”本身的心理和行为特点。以用户为中心的设计流程,关注用户的使用流畅度和方便性,符合用户使用习惯的解决方案。交互不一定需要很华丽的界面,但是使用过程肯定是很人性化,减少用户思考返回的次数。本回答被网友采纳
如何用ppt做交互界面
PPT交互界面需要通过插入超链接的形式来进行界面的跳转,同时可以配合设计--动画来添加交互的动画效果。
说明:打算如何实现本程序的界面,例如:使用什么组件,如何进行交互等
package book.gui;import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; /*** 一个计算器,与Windows附件自带器的标准版功能、界面。* 不支持键盘操作。*/ public class Calculator extends JFrame implements ActionListener {/** 计算器上的键的显示名字 */private final String[] KEYS = { "7", "8", "9", "/", "sqrt", "4", "5", "6","*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };/** 计算器上的功能键的显示名字 */private final String[] COMMAND = { "Backspace", "CE", "C" };/** 计算器左边的M的显示名字 */private final String[] M = { " ", "MC", "MR", "MS", "M+" };/** 计算器上键的按钮 */private JButton keys[] = new JButton[KEYS.length];/** 计算器上的功能键的按钮 */private JButton commands[] = new JButton[COMMAND.length];/** 计算器左边的M的按钮 */private JButton m[] = new JButton[M.length];/** 计算结果文本框 */private JTextField resultText = new JTextField("0");// 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字private boolean firstDigit = true;// 计算的中间结果。private double resultNum = 0.0;// 当前运算的运算符private String operator = "=";// 操作是否合法private boolean operateValidFlag = true;/*** 构造函数*/public Calculator(){super();//初始化计算器init();//设置计算器的背景颜色this.setBackground(Color.LIGHT_GRAY);this.setTitle("计算器");//在屏幕(500, 300)坐标处显示计算器this.setLocation(500, 300);//不许修改计算器的大小this.setResizable(false);//使计算器中各组件大小合适this.pack();}/*** 初始化计算器*/private void init() {// 文本框中的内容采用右对齐方式resultText.setHorizontalAlignment(JTextField.RIGHT);// 不允许修改结果文本框resultText.setEditable(false);// 设置文本框背景颜色为白色resultText.setBackground(Color.WHITE);//初始化计算器上键的按钮,将键放在一个画板内JPanel calckeysPanel = new JPanel();//用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3));for (int i = 0; i < KEYS.length; i++) {keys[i] = new JButton(KEYS[i]);calckeysPanel.add(keys[i]);keys[i].setForeground(Color.blue);}//运算符键用红色标示,其他键用蓝色表示keys[3].setForeground(Color.red);keys[8].setForeground(Color.red);keys[13].setForeground(Color.red);keys[18].setForeground(Color.red);keys[19].setForeground(Color.red);//初始化功能键,都用红色标示。将功能键放在一个画板内JPanel commandsPanel = new JPanel();//用网格布局器,1行,3列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素commandsPanel.setLayout(new GridLayout(1, 3, 3, 3));for (int i = 0; i < COMMAND.length; i++) {commands[i] = new JButton(COMMAND[i]);commandsPanel.add(commands[i]);commands[i].setForeground(Color.red);}//初始化M键,用红色标示,将M键放在一个画板内JPanel calmsPanel = new JPanel();//用网格布局管理器,5行,1列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素calmsPanel.setLayout(new GridLayout(5, 1, 3, 3));for (int i = 0; i < M.length; i++) {m[i] = new JButton(M[i]);calmsPanel.add(m[i]);m[i].setForeground(Color.red);}//下面进行计算器的整体布局,将calckeys和command画板放在计算器的中部,//将文本框放在北部,将calms画板放在计算器的西部。//新建一个大的画板,将上面建立的command和calckeys画板放在该画板内JPanel panel1 = new JPanel();//画板采用边界布局管理器,画板里组件之间的水平和垂直方向上间隔都为3象素panel1.setLayout(new BorderLayout(3, 3));panel1.add("North", commandsPanel);panel1.add("Center", calckeysPanel);//建立一个画板放文本框JPanel top = new JPanel();top.setLayout(new BorderLayout());top.add("Center", resultText);//整体布局getContentPane().setLayout(new BorderLayout(3, 5));getContentPane().add("North", top);getContentPane().add("Center", panel1);getContentPane().add("West", calmsPanel);//为各按钮添加事件侦听器//都使用同一个事件侦听器,即本对象。本类的声明中有implements ActionListenerfor (int i = 0; i < KEYS.length; i++) {keys[i].addActionListener(this);}for (int i = 0; i < COMMAND.length; i++) {commands[i].addActionListener(this);}for (int i = 0; i < M.length; i++) {m[i].addActionListener(this);}}/*** 处理事件*/public void actionPerformed(ActionEvent e) {//获取事件源的标签String label = e.getActionCommand();if (label.equals(COMMAND[0])){//用户按了"Backspace"键handleBackspace();} else if (label.equals(COMMAND[1])) {//用户按了"CE"键resultText.setText("0");} else if (label.equals(COMMAND[2])){//用户按了"C"键handleC();} else if ("0123456789.".indexOf(label) >= 0) {//用户按了数字键或者小数点键handleNumber(label);// handlezero(zero);} else {//用户按了运算符键handleOperator(label);}}/*** 处理Backspace键被按下的事件*/private void handleBackspace() {String text = resultText.getText();int i = text.length();if (i > 0) {//退格,将文本最后一个字符去掉text = text.substring(0, i - 1);if (text.length() == 0) {//如果文本没有了内容,则初始化计算器的各种值resultText.setText("0");firstDigit = true;operator = "=";} else {//显示新的文本resultText.setText(text);}}}/*** 处理数字键被按下的事件* @param key*/private void handleNumber(String key) {if (firstDigit) {//输入的第一个数字resultText.setText(key);} else if ((key.equals(".")) && (resultText.getText().indexOf(".") < 0)){//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面resultText.setText(resultText.getText() + ".");} else if (!key.equals(".")) {//如果输入的不是小数点,则将数字附在结果文本框的后面resultText.setText(resultText.getText() + key);}//以后输入的肯定不是第一个数字了firstDigit = false;}/*** 处理C键被按下的事件*/private void handleC() {//初始化计算器的各种值resultText.setText("0");firstDigit = true;operator = "=";}/*** 处理运算符键被按下的事件* @param key*/private void handleOperator(String key) {if (operator.equals("/")) {//除法运算//如果当前结果文本框中的值等于0if (getNumberFromText() == 0.0){//操作不合法operateValidFlag = false;resultText.setText("除数不能为零");} else {resultNum /= getNumberFromText();}} else if (operator.equals("1/x")) {//倒数运算if (resultNum == 0.0){//操作不合法operateValidFlag = false;resultText.setText("零没有倒数");} else {resultNum = 1 / resultNum;}} else if (operator.equals("+")){//加法运算resultNum += getNumberFromText();} else if (operator.equals("-")){//减法运算resultNum -= getNumberFromText();} else if (operator.equals("*")){//乘法运算resultNum *= getNumberFromText();} else if (operator.equals("sqrt")) {//平方根运算resultNum = Math.sqrt(resultNum);} else if (operator.equals("%")){//百分号运算,除以100resultNum = resultNum / 100;} else if (operator.equals("+/-")){//正数负数运算resultNum = resultNum * (-1);} else if (operator.equals("=")){//赋值运算resultNum = getNumberFromText();}if (operateValidFlag) {//双精度浮点数的运算long t1;double t2;t1 = (long) resultNum;t2 = resultNum - t1;if (t2 == 0) {resultText.setText(String.valueOf(t1));} else {resultText.setText(String.valueOf(resultNum));}}//运算符等于用户按的按钮operator = key;firstDigit = true;operateValidFlag = true;}/*** 从结果文本框中获取数字* @return*/private double getNumberFromText() {double result = 0;try {result = Double.valueOf(resultText.getText()).doubleValue();} catch (NumberFormatException e){}return result;}public static void main(String args[]) {Calculator calculator1 = new Calculator();calculator1.setVisible(true);calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);} }package book.gui;import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.plaf.metal.MetalLookAndFeel;import com.sun.java.swing.plaf.motif.MotifLookAndFeel; import com.sun.java.swing.plaf.windows.WindowsLookAndFeel; /*** 更改窗体、组件的外观*/ public class LookAndFeel {public static void main(String[] args) {/*** Metal风格——"javax.swing.plaf.metal.MetalLookAndFeel"* Motif风格——"com.sun.java.swing.plaf.motif.MotifLookAndFeel"* Windows风格——"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"*/Calculator calculator1 = new Calculator();calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//3个不同的风格/*** LookAndFeel是一个抽象类,除了提供了一些static方法,还定义了一些抽象的个性化设置方法来由子类实现。从JDK1.1.3开始,Sun提供了三个LookAndFeel的子类*/String lnfName = "javax.swing.plaf.metal.MetalLookAndFeel"; //String lnfName = "com.sun.java.swing.plaf.motif.MotifLookAndFeel"; //String lnfName = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";try {// UIManager负责跟踪当前的外观及其默认设置,setLookAndFeel方法将设置它的LookAndFeel的类全名UIManager.setLookAndFeel(lnfName);// setLookAndFeel还可以直接设置设置对象UIManager.setLookAndFeel(new MetalLookAndFeel()); //UIManager.setLookAndFeel(new MotifLookAndFeel()); //UIManager.setLookAndFeel(new WindowsLookAndFeel());//SwingUtilities是一个Swing的工具类,提供了很多静态方法。//updateComponentTreeUI将更新calculator1中所有组件的外观SwingUtilities.updateComponentTreeUI(calculator1);}catch (UnsupportedLookAndFeelException ex1) {System.err.println("Unsupported LookAndFeel: " + lnfName);}catch (ClassNotFoundException ex2) {System.err.println("LookAndFeel class not found: " + lnfName);}catch (InstantiationException ex3) {System.err.println("Could not load LookAndFeel: " + lnfName);}catch (IllegalAccessException ex4) {System.err.println("Cannot use LookAndFeel: " + lnfName);}calculator1.setVisible(true);} }


上一篇:
下一篇:

中国科学技术馆|科技馆|中国科技馆
科技内涵|科技企业|科技园区|科技导读|网站地图