让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标签全部失效等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)