对于发的截图,我估计是对方使得鼠标在输入框时将焦点变位“确定”按钮,或者整个window组件只有“确定”按钮设置焦点选中,这样enter键会按下确定,这样是不符合逻辑的,应该鼠标在哪个组件哪个组件为当前组件(即选中),估计是对方并不知道button的doClick方法(或者直接调用“确定”按钮的事件)或者习惯性那样不合理的用法。
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()
}
}
你好,按照windows的程序处理方式,一个时间必须有一个事物是聚集的。所以你这个问题的答案是,通过设置另一个控件为焦点,来实现你的目标控件失焦。如果你想手动让它失去焦点,可以在执行一个动作时,把另外一个控件.setFocus()。
如果你是想让它自动失去焦点,可以开一个子线程,等过了多少秒后,它自动对另一个控件.setFocus()。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)