新聞中心
Swing 工具包提供各種用于創(chuàng)建用戶界面的工具和幾乎令人眼花繚亂的選項(xiàng),這些選項(xiàng)用于在程序生存期間修改界面。小心地使用這些功能可以導(dǎo)致界面能夠適應(yīng)用戶的需要并簡(jiǎn)化交互過程。粗心地使用同樣的功能可以導(dǎo)致非常混亂或徹底不可用的程序。您將修改隨 Sun JDK 一起提供的基于 Swing Set示例應(yīng)用程序的源代碼;此應(yīng)用程序的 UI 使用許多動(dòng)態(tài)的特性并且可以作為理解它們的極好的起點(diǎn)。

創(chuàng)新互聯(lián)成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場(chǎng)為導(dǎo)向”的快速反應(yīng)體系。對(duì)公司的主營(yíng)項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門戶設(shè)計(jì)推廣、行業(yè)門戶平臺(tái)運(yùn)營(yíng)、app軟件開發(fā)公司、手機(jī)網(wǎng)站制作、微信網(wǎng)站制作、軟件開發(fā)、電信機(jī)房托管等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從創(chuàng)新互聯(lián)可以獲得的服務(wù)效果。
禁用小部件
動(dòng)態(tài) UI 的最簡(jiǎn)單形式是使不可用的菜單項(xiàng)或按鈕變灰的 UI。禁用 UI 小部件與禁用所有小部件的方法都是相同的。setEnabled() 函數(shù)是 Component 類的一個(gè)功能。清單 1 顯示了禁用按鈕的代碼:
清單 1. 禁用按鈕
- button.setEnabled(false);
正如您看到的,十分簡(jiǎn)單。關(guān)鍵問題是何時(shí)應(yīng)該 啟用或禁用一個(gè)按鈕。通常的設(shè)計(jì)決策是當(dāng)按鈕不可用時(shí)禁用它。例如,當(dāng)一個(gè)文件從上一次保存以來還沒有被修改時(shí),很多程序禁用 Save 按鈕(以及任何相應(yīng)的菜單項(xiàng))。
關(guān)于禁用按鈕的重要警告是要記住在適當(dāng)?shù)臅r(shí)候重新啟用它們。例如,如果在單擊按鈕和按鈕的動(dòng)作完成之間有一個(gè)確認(rèn)步驟,即使確認(rèn)失敗也應(yīng)該重新啟用按鈕。
調(diào)整范圍
有時(shí),應(yīng)用程序需要?jiǎng)討B(tài)地調(diào)整數(shù)值小部件的范圍,例如 Spinner 或者 Slider。這可能比它看起來要復(fù)雜許多。特別是 Slider 有二級(jí)功能 —— 刻度、刻度間隔和標(biāo)簽 —— 這些可能需要隨著范圍的調(diào)整而加以調(diào)整以避免災(zāi)難發(fā)生。
Swing Set示例沒有進(jìn)行任何一項(xiàng)調(diào)整,所以您需要通過把 ChangeListener 連接到一個(gè)可以修改其他滑塊的滑塊來修改它。輸入新的 SliderChangeListener 類, 如清單 2 所示:
清單 2. 更改滑塊的范圍
- class SliderChangeListener implements ChangeListener {
- JSlider h;
- SliderChangeListener(JSlider h) {
- this.h = h;
- }
- public void stateChanged(ChangeEvent e) {
- JSlider js = (JSlider) e.getSource();
- int i = js.getValue();
- h.setMaximum(i);
- h.repaint();
- }
- }
這個(gè)看起來無意義的操作實(shí)際上有重大的作用。每當(dāng)設(shè)置標(biāo)簽表時(shí)就生成滑塊的標(biāo)簽。沒有為了修改對(duì)表進(jìn)行特殊回調(diào),所以添加到表中的新值不必產(chǎn)生效果;很顯然,空操作具有使 Swing 知道它必須更新顯示的副作用。(以免您認(rèn)為這是我自己發(fā)明的,請(qǐng)注意最初的 Swing Set示例代碼包括這樣一個(gè)調(diào)用。)
文章標(biāo)題:淺析SwingSet示例
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/cdppdij.html


咨詢
建站咨詢
