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

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

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

核心代码

JTextField jtf= new JTextField(10);jtfaddFocusListener(new FocusListener() {    public void focusLost(FocusEvent e) {//失去焦点时        Systemoutprintln("失去了焦点");        jtfsetBackground(ColorWHITE);    }    public void focusGained(FocusEvent e) {//获得焦点时        Systemoutprintln("获得了焦点");        tfsetBackground(ColorPINK);     }});

效果图

参考代码

import javaawt;import javaawtevent;import javaxswing; public class TextFrame extends JFrame {     JTextField jtf;    public TextFrame() {        JPanel jp = new JPanel();        jtf= new JTextField(10);        jtfaddFocusListener(new FocusListener() {                         @Override            public void focusLost(FocusEvent e) {//失去焦点时                Systemoutprintln("失去了焦点");                jtfsetBackground(ColorWHITE);            }                         @Override            public void focusGained(FocusEvent e) {//获得焦点时                Systemoutprintln("获得了焦点");                jtfsetBackground(ColorPINK);             }        });        jpadd(jtf);                 JButton jb = new JButton("点击按钮, 文本框会失去焦点");        add(jb,BorderLayoutNORTH);        add(jp,BorderLayoutSOUTH);        setTitle("DEMO");        setSize(300,220);// 窗口大小        setLocationRelativeTo(null);// 窗口居中        setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序        setVisible(true);    }              public static void main(String[] args) {        new TextFrame();    } }

最正统的方法是把TextBox1的TabIndex属性设为0(其他控件的TabIndex不能是0)

要在Load事件里用TextBox1Focus()也可以,但要先MeShow(),否则不会起作用。因为控件得到焦点需要控件”可见可用“,在FormLoad阶段整个窗体是“不可见"的,需要强制使用MeShow()。

$(function(){

//解决IE11文本框无法选中,强制获取焦点

$("input[type='text']")eq(0)focus();

$("input[type='text']")eq(0)blur();

})

InputMethodManager有一个方法isActive(View view):如果view是输入法的活动view,则返回true。也就是说,如果是由view触发d出软键盘,则返回true。

if(isActive(edittext))

隐藏键盘

接着让另一个view强制获取焦点,这样isActivite(ediitext)就为false

这个方法比较简单,代码比较短,也很好理解。

附上代码:

InputMethodManager inputMethodManager = (InputMethodManager)getActivity()getSystemService(ContextINPUT_METHOD_SERVICE);<br>private boolean hideKeyboard(){

if(inputMethodManagerisActive(searchEditText)){<br>//因为是在fragment下,所以用了getView()获取view,也可以用findViewById()来获取父控件

getView()requestFocus();//使其它view获取焦点这里因为是在fragment下,所以便用了getView(),可以指定任意其它view

inputMethodManagerhideSoftInputFromWindow(getActivity()getCurrentFocus()getWindowToken(), InputMethodManagerHIDE_NOT_ALWAYS);

return true;

}

return false;

}

ps: 如果是手动d出键盘,getActivity()getCurrentFocus()改成searchEditText并且手动d出的键盘isActivie()失效,可用标记来判断

你想写类似查找替换那种窗口吧

frmfindshow

0,me

先看看是不是要这种效果

mdiform1:

Private

Sub

MDIForm_Load()

Form2Show

End

Sub

form1:

'什么也没有

form2

'添加一个command1

'mdichild=true

Private

Sub

Command1_Click()

Form1Show

0,

MDIForm1

End

Sub

工程属性里把启动设置为mdiform1

以上就是关于java中JTextField如何强制失去焦点或者赋予焦点全部的内容,包括:java中JTextField如何强制失去焦点或者赋予焦点、vb.net 得到焦点、在IE11浏览器下input和a标签全部失效等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/10079026.html

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

发表评论

登录后才能评论

评论列表(0条)

保存