2011-12-21 79 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