熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java Swing中的Accelerator Key

2022-06-13   來源: Java核心技術 
前言:沒事在看《Java Swing nd Edition》看到有個東西還是蠻有趣的說就是Accelerator key呵呵好像要配合Alt一起用才能起到作用蠻多東西是看了程序後才發現原文的意思的這次算是插曲不在MapsEditor的范圍之內順便提一下中午起來有個人加了群蠻開心的高手也好初學也罷大家重要的是交流大膽說出自己的想法錯了就錯了誰沒錯過啊……

  關於Accelerator key在做GUI的時候還是比較重要的吧至少以前認為那些不用鼠標的人蠻高手的呵呵自己也會去刻意記些常用的快捷鍵在Windows下用用還算湊合那呵呵程序是從書上搬下來的覺得蠻有意思的大家可以看看

// MnemonicLabelsjava
//
import javaxswing*;
import javaawt*;

// Shows how displayedMnemonic and labelFor properties work together
public class MnemonicLabels {
public static void main(String[] args) {
 
  JTextField firstField = new JTextField();
  JTextField middleField = new JTextField();
  JTextField lastField = new JTextField();
 
  // Create labels and mnemonics
  JLabel firstLabel = new JLabel(First Name JLabelRIGHT);
  firstLabelsetDisplayedMnemonic(F);
  firstLabelsetLabelFor(firstField);
 
  JLabel middleLabel = new JLabel(Middle Initial JLabelRIGHT);
  middleLabelsetDisplayedMnemonic(I);
  middleLabelsetDisplayedMnemonicIndex(); // Requires
  middleLabelsetLabelFor(middleField);
 
  JLabel lastLabel = new JLabel(Last Name JLabelRIGHT);
  lastLabelsetDisplayedMnemonic(L);
  lastLabelsetLabelFor(lastField);
 
  // Layout and display
  JPanel p = new JPanel( );
  psetLayout(new GridLayout( ));
  padd(firstLabel);
  padd(firstField);
  padd(middleLabel);
  padd(middleField);
  padd(lastLabel);
  padd(lastField);
 
  JFrame f = new JFrame(MnemonicLabels);
  fsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
  fsetContentPane(p);
  fpack( );
  fsetVisible(true);
}
}
  有Java環境的可以拷貝去然後編譯運行看看然後分別按Alt+FAlt+IAlt+LFoucs就會在三個TextField之間轉換關鍵的是firstLabelsetDisplayedMnemonic(F)和firstLabelsetLabelFor(firstField)前一個setDisplayedMnemonic(char)選定哪個character為快捷鍵就像VC裡面的&一樣的功能而後面這個setLabelFor(comp)則表明你按下相應的快捷鍵(加速鍵)後焦點定位到哪個控件上(當然要有焦點的控件)需要注意的是第二個快捷鍵的設置middleLabelsetDisplayedMnemonicIndex();這個需要SDK的支持這個的作用就是設置顯示的下劃線為第幾個字符很明顯我們注意到對於I來說Middle Initial中前後有兩個I而這裡是部分大小寫的所以按照第一個或者第三個的做法的話程序會默認JLabel中文字滿足的第一個字符加下劃線也就是這個樣子了Middle Initial我們要的是Middle Initial的效果所以把下劃線設置到第七個字符I上面其他也沒什麼好玩的了除了這個應該都能摸索懂吧呵呵

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26000.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.