今天使用JTextField,想让他获得焦点,使用了如下两个方法
1、requestFocus()
2、grabFocus()
在如下情况失败(包括不起作用和一下子有效一下子无效)
1、只使用requestFocus()或者grabFocus()
2、在jf.setVisible(true)之前使用
使用电脑版本Window10-64位
不知道是什么原因
解决办法
经过本人多次实验在jf.setVisible(true)后使用
jtf2.requstFocus();
jtf2.grabFocus();
就可以百分百实现焦点放在jtf2上
代码如下
import javax.swing.*;
public class Test
{
JFrame jf = new JFrame("测试");
JPanel panel = new JPanel();
JTextField jtf = new JTextField(30);
JTextField jtf2 = new JTextField(30);
public void init()
{
//现在将两个JTextField添加进Panel
panel.add(jtf);
panel.add(jtf2);
jf.add(panel);
jf.setVisible(true);
jtf2.requestFocus();
jtf2.grabFocus();
jf.setSize(800,600);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
Test test = new Test();
test.init();
}
}
创作不易,求三连支持!
希望每天都是开心的一天!!