2011-12-21 12 views
0

こんにちは、私は、Java Swingでホットキーを作成する次のコードを書いています。 Jtextfield1 (Name)のニーモニックを作成します。正常に表示されましたが、実行時にすぐにtf2をクリックすると、tf2からtf1にカーソルが移動するかどうかを知る必要があります。スイングを使用してJavaでホットキーを作成する

tf2にいくつかの値を入力します。次にtf1と入力する必要があります。この状況では、ALT+Nのキーを押します(Nはニーモニックがtf1なので)。カーソルはtf1にフォーカスし、テキストフィールドに名前を入力しました。どうすればいいですか?あなたはKeyBindingsからの出力はjavax.swing.Actionすべきであり、そこにあなたが決断JComponentFocusを設定するラップすることができ、KeyBindingsを探す必要が

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への呼び出しで間違った引数を入力したことです。

関連する問題