Java编码中焦点改变问题,做个登陆界面案例,输入用户名的是JCombobox;输入密码是JPasswordText;当软件启动的时候,让光标焦点默认在密码输入框内代码如下:
import java.awt.*;
import javax.swing.*;
public class requestFocusLnWindowDemo extends JFrame{
public requestFocusLnWindowDemo() {
Container c = this.getContentPane();
c.setLayout(new BorderLayout());
JTextField j = new JTextField("希望光标在下面",10);
final JTextField j1 = new JTextField(10);
c.add(j,BorderLayout.NORTH);
c.add(j1,BorderLayout.SOUTH);
this.setSize(300,200);
this.setLocationRelativeTo(null);//这句可以使窗口在屏幕中间显示
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
j1.requestFocusInWindow();
}
});
}
public static void main(String []args){
new requestFocusLnWindowDemo();
}
}
java swing中改变焦点的方法是:
全部初始化之后,把分发事件的焦点事件设置为true,如下:
jTextField.dispatchEvent(new FocusEvent(jTextField,FocusEvent.FOCUS_GAINED,TRUE));
然后在用requestFocusInWindow()这个方法来获取焦点,如下:
jTextField.requestFocusInWindow();
有关用法请参考:http://docs.oracle.com/javase/7/docs/api/
这个可以试一下,不成功再追问
JPanel panel=new JPanel();
…………
panel.requestFocusInWindow(); //获取焦点
JPanel panel=new JPanel();
…………
panel.requestFocusInWindow(); //获取焦点