摘要:因?yàn)檫@意味著用戶實(shí)現(xiàn)功能的時(shí)間變少。人類的失誤設(shè)計(jì)過程中要盡量避免用戶意外點(diǎn)中不相關(guān)的功能。常見的操作會用工具欄來實(shí)現(xiàn),它們被包裹在子菜單中。子菜單可以利用實(shí)現(xiàn),當(dāng)用戶點(diǎn)擊其他的子菜單時(shí)當(dāng)前顯示的子菜單應(yīng)從移除。
最后一次更新于 2019/07/09
菜單效果演示圖Microsoft Word
本程序菜單
這個(gè)項(xiàng)目是人機(jī)交互設(shè)計(jì)課程的一個(gè)小作業(yè)。
不過該作業(yè)的要求是不需要編寫任何代碼的。
但為了體現(xiàn)我們小組的設(shè)計(jì)和分組理念,我還是決定編寫一個(gè)菜單小程序,該程序有靈活的布局,是微軟的 Word 編輯器和 IntelliJ IDEA 編輯器布局的綜合。
我們小組需要處理的所有功能已經(jīng)預(yù)先被分類成如下幾種名稱:
根據(jù) 功能相似的應(yīng)該放在一起 的原則來布局所屬的按鈕。
例如,空白文本,加粗文本,斜體文本和下劃線文本。
時(shí)序性根據(jù) 功能的分組可以反應(yīng)執(zhí)行的順序 的原則來布局所屬的按鈕。
例如,先復(fù)制后粘貼。
使用頻率根據(jù) 使用頻率相似的功能應(yīng)該放在一起 的原則來布局所屬的按鈕。通常常用操作都會在工具欄里使用戶能直接點(diǎn)擊。
例如,保存和打印。
菜單設(shè)計(jì)原理 費(fèi)茨法則按鈕的面積越大越好。而用戶的鼠標(biāo)指針和按鈕之間的距離越小越好。因?yàn)檫@意味著用戶實(shí)現(xiàn)功能的時(shí)間變少。
人類是會犯錯(cuò)誤的設(shè)計(jì)過程中要盡量避免誤導(dǎo)用戶。
比如說,如果先使用戶看到“保存為”功能而不是“保存”功能的話很可能使用戶誤認(rèn)為“保存為”即是“保存”功能。
設(shè)計(jì)過程中要盡量避免用戶意外點(diǎn)中不相關(guān)的功能。
比如說,用戶可能誤點(diǎn)中“刪除”而不是“粘貼”如果這兩個(gè)功能緊挨在一起的話。
從各類文本編輯器和以上原理的靈感激發(fā)下,我決定做出靈活布局的菜單。
常見的操作會用工具欄來實(shí)現(xiàn),它們被包裹在子菜單中。
子菜單 可以利用 JToolBar 實(shí)現(xiàn),當(dāng)用戶點(diǎn)擊其他的子菜單時(shí)當(dāng)前顯示的子菜單應(yīng)從 JFrame 移除。
舉個(gè)例子
public void menuSelected(MenuEvent e) { if(toolbar != null) { toolbar.setVisible(false); frame.remove(toolbar); } if(viewbar == null) { viewbar = new JToolBar(); JMenuBar menuBar = new JMenuBar(); // 頁面。 ImageIcon pageIcon = new ImageIcon("src/images/page.png"); JMenu page = new JMenu("View Page"); page.setIcon(pageIcon); menuBar.add(page); // 頁面所在位置。 ImageIcon posIcon = new ImageIcon("src/images/position.png"); JMenu position = new JMenu("Position"); position.setIcon(posIcon); menuBar.add(position); // 顯示文檔。 ImageIcon docIcon = new ImageIcon("src/images/documents.png"); JMenu document= new JMenu("Alternative Document"); document.setIcon(docIcon); menuBar.add(document); viewbar.add(menuBar); } frame.add(viewbar, BorderLayout.PAGE_START); viewbar.setVisible(true); frame.setVisible(true); }
對于快捷鍵的實(shí)現(xiàn)而言,我們需要調(diào)用 setAccelerator() 函數(shù)來設(shè)置快捷鍵。
比方說,
toolItem = new JMenuItem("Delete"); toolItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_DELETE, 0));
接著,我們應(yīng)該為每個(gè)按鈕設(shè)置一個(gè)圖標(biāo)以此來提醒用戶點(diǎn)擊該按鈕會發(fā)生什么。
這部分的實(shí)現(xiàn)比較簡單:
ImageIcon pageIcon = new ImageIcon("src/images/page.png"); JMenu page = new JMenu("View Page"); page.setIcon(pageIcon);源碼
如果我的文章可以幫到您,勞煩您點(diǎn)進(jìn)源碼點(diǎn)個(gè) ★ Star 哦!
https://github.com/Hephaest/M...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75243.html
摘要:時(shí)間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)源碼學(xué)習(xí)源碼第一章概述課程簡介本課程是在之前的初識微信公眾號開發(fā)課程基礎(chǔ)之上的。慕課網(wǎng)課程涵蓋前端開發(fā)等前沿技術(shù)語言,包括基礎(chǔ)課程實(shí)用案例高級分享三大類型,適合不同階段的學(xué)習(xí)人群。 時(shí)間:2017年08月12日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:http://img.m...
摘要:規(guī)范目的為提高團(tuán)隊(duì)協(xié)作效率便于后臺人員添加功能及前端后期優(yōu)化維護(hù)輸出高質(zhì)量的文檔特制訂此文檔。 規(guī)范目的 為提高團(tuán)隊(duì)協(xié)作效率, 便于后臺人員添加功能及前端后期優(yōu)化維護(hù), 輸出高質(zhì)量的文檔, 特制訂此文檔。 文件規(guī)范 文件命名規(guī)則 文件名稱統(tǒng)一用小寫的英文字母、數(shù)字和下劃線的組合,其中不得包含漢字、空格和特殊字符;命名原則的指導(dǎo)思想一是使得你自己和工作組的每一個(gè)成員能夠方便的理解每一個(gè)...
閱讀 2157·2023-05-11 16:55
閱讀 3517·2021-08-10 09:43
閱讀 2635·2019-08-30 15:44
閱讀 2453·2019-08-29 16:39
閱讀 598·2019-08-29 13:46
閱讀 2019·2019-08-29 13:29
閱讀 932·2019-08-29 13:05
閱讀 704·2019-08-26 13:51