关于Java swing组件焦点的问题(我猜可能是焦点的问题) 高分求全面

关于Java swing组件焦点的问题(我猜可能是焦点的问题) 高分求全面,第1张

明白了,楼主第二个方法的做法是正确的,而且应该这样做,在JTextField中监听键盘Enter事件来时button产生按下 *** 作,或者直接调用button按下 *** 作的actionperformed方法。

对于发的截图,我估计是对方使得鼠标在输入框时将焦点变位“确定”按钮,或者整个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()。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7860472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存