java中JTextField如何强制失去焦点或者赋予焦点?

java中JTextField如何强制失去焦点或者赋予焦点?,第1张

让JTextField文本框响应焦点事件 即可. 

核心代码

JTextField jtf= new JTextField(10)jtf.addFocusListener(new FocusListener() {    public void focusLost(FocusEvent e) {//失去焦点时        System.out.println("失去了焦点")        jtf.setBackground(Color.WHITE)    }    public void focusGained(FocusEvent e) {//获得焦点时        System.out.println("获得了焦点")        tf.setBackground(Color.PINK)     }})

效果图

参考代码

import java.awt.*import java.awt.event.*import javax.swing.* public class TextFrame extends JFrame {     JTextField jtf    public TextFrame() {        JPanel jp = new JPanel()        jtf= new JTextField(10)        jtf.addFocusListener(new FocusListener() {                         @Override            public void focusLost(FocusEvent e) {//失去焦点时                System.out.println("失去了焦点")                jtf.setBackground(Color.WHITE)            }                         @Override            public void focusGained(FocusEvent e) {//获得焦点时                System.out.println("获得了焦点")                jtf.setBackground(Color.PINK)             }        })        jp.add(jtf)                 JButton jb = new JButton("点击按钮, 文本框会失去焦点")        add(jb,BorderLayout.NORTH)        add(jp,BorderLayout.SOUTH)        setTitle("DEMO")        setSize(300,220)// 窗口大小        setLocationRelativeTo(null)// 窗口居中        setDefaultCloseOperation(EXIT_ON_CLOSE)// 窗口点击关闭时,退出程序        setVisible(true)    }              public static void main(String[] args) {        new TextFrame()    } }

一般在jframe中用如下代码实现: in = new JTextField(40)f.addWindowListener( new WindowAdapter() { public void windowOpened( WindowEvent e ){ in.requestFocus()} })f是你的Jframe对象,in是JTextField对象。

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()

    }

}


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存