当前位置: 技术问答>java相关
高分求教,关于focus
来源: 互联网 发布时间:2015-08-17
本文导语: 背景:我定义了一个名为InputField的JTextField,其enable,editable属性均为true,并且定义了如下方法(是由JBuilder6的Event中自动创建): void InputField_focusGained(FocusEvent e) { InputField.setBackground(Color.red); ...
背景:我定义了一个名为InputField的JTextField,其enable,editable属性均为true,并且定义了如下方法(是由JBuilder6的Event中自动创建):
void InputField_focusGained(FocusEvent e) {
InputField.setBackground(Color.red);
}
现象:当我打开一个JWindow窗口时InputField域的background确实变成了红色,但是光标却不在InputField域里面。
问题:请问,为什么光标会不在InputField里面?怎样才能让InputField获得光标?
void InputField_focusGained(FocusEvent e) {
InputField.setBackground(Color.red);
}
现象:当我打开一个JWindow窗口时InputField域的background确实变成了红色,但是光标却不在InputField域里面。
问题:请问,为什么光标会不在InputField里面?怎样才能让InputField获得光标?
|
焦点和光标不是一样的,但是在TextField中表现是一样的,因为在TextFieldUI中,也有一个FocusListener,得到焦点后负责显示光标。
楼主说的情况我也遇到过,我的解决办法是给JWindow加上WindowListener,
window.addWindowListener(new WindowAdpter(){
public void windowOpened(WindowEvent e) {
textField.requestFocus();
}
});
我是这样解决的,不过不知道对楼主的例子可不可行。
楼主说的情况我也遇到过,我的解决办法是给JWindow加上WindowListener,
window.addWindowListener(new WindowAdpter(){
public void windowOpened(WindowEvent e) {
textField.requestFocus();
}
});
我是这样解决的,不过不知道对楼主的例子可不可行。
|
void jTextField1_focusGained(FocusEvent e) {
jTextField1.setBackground(Color.cyan);
jTextField1.grabFocus();
}
void jTextField1_focusLost(FocusEvent e) {
jTextField1.setBackground(Color.blue);
}
void jTextField2_mouseEntered(MouseEvent e) {
jTextField2.setBackground(Color.red);
jTextField1.grabFocus();
}
void jTextField2_mouseExited(MouseEvent e) {
jTextField2.setBackground(Color.green);
}
我试了一下可以呀
jTextField1.setBackground(Color.cyan);
jTextField1.grabFocus();
}
void jTextField1_focusLost(FocusEvent e) {
jTextField1.setBackground(Color.blue);
}
void jTextField2_mouseEntered(MouseEvent e) {
jTextField2.setBackground(Color.red);
jTextField1.grabFocus();
}
void jTextField2_mouseExited(MouseEvent e) {
jTextField2.setBackground(Color.green);
}
我试了一下可以呀
|
InputField.grabFocus();
|
试试inputField.requestFocus()
|
up
|
没这么简单的。我以前试过这么做,不行的。
关注
关注
|
是啊,那个grabFocus()能抢夺焦点,但是在转移到同一个Panel下的其他控件就好像不太好用了。up
|
呵呵,这方面就不如vb了,vb有validate
|
获得焦点和获得光标是一回事吗?不明白的问
|
up