您好我写了以下代码来创建Java Swing中的热键。我为Jtextfield1 (Name)
创建了助记符。它显示正确,但现在我需要知道在运行时我是否立即点击tf2
然后光标将从tf2
转到tf1
。
我在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();
}
}
答案 0 :(得分:2)
您必须查找KeyBindings,KeyBindings
的输出应为javax.swing.Action,您可以将Focus
设置为JComponent
,} p>
答案 1 :(得分:1)
您描述的需求是JTextField的助记符。对于AbstractButton衍生,您可以使用setMnemonic直接设置助记符。对于JTextField,您可以创建JLabel并将助记符设置为JLabel。然后将标签附加到文本字段,助记符按预期工作。您将标签附加到文本字段,如下所示:
label.setLabelFor(textField);
因此,代码中唯一错误的是您在调用setLabelFor时输入了错误的参数。