2011-12-21 69 views
0

嗨我寫了下面的代碼來創建java Swing中的熱鍵。我爲Jtextfield1 (Name)創建了助記符。它顯示正確,但現在我需要知道,如果在運行時,我立即點擊tf2然後光標將從tf1tf2在java中使用swing創建熱鍵

我在tf2中輸入了一些值。然後我需要輸入tf1。在這種情況下,我按ALT+N鍵(因爲N是tf1的助記符)。遊標集中tf1並在文本框中輸入名稱。我該怎麼做呢?

package hotkeys; 
import java.awt.event.*; 
import javax.swing.*; 
import java.net.*; 

public class hotkey extends JFrame { 

    public static void main(String arg[]) { 

     JLabel Name=new JLabel("Name"); 
     JTextField tf1=new JTextField(20); 
     Name.setLabelFor(Name); 
     Name.setDisplayedMnemonic('N'); 

     JLabel Regno=new JLabel("Reg_NO"); 
     JTextField tf2=new JTextField(20); 

     JButton b1=new JButton("Save"); 
     JButton b2=new JButton("eXit"); 

     JFrame f=new JFrame(); 
     JPanel p=new JPanel(); 

     p.add(Name); 
     p.add(Regno); 
     p.add(tf1); 
     p.add(tf2); 
     p.add(b1); 
     p.add(b2); 

     f.add(p); 
     f.setVisible(true); 
     f.pack(); 
    }  
} 

回答

1

你描述我們需要的是一個JTextField的記憶。對於AbstractButton衍生產品,您可以使用setMnemonic直接設置助記符。對於JTextField,您創建一個JLabel並將助記符設置爲JLabel。然後,將標籤附加到文本字段,助記符按預期工作。你的標籤貼到文本字段是這樣的:

label.setLabelFor(textField); 

所以,唯一的事情錯在你的代碼是你輸入錯誤的參數在調用setLabelFor