Java 在大量jTextField中选择all on focus
我的应用程序中有很多jTextFields(大约34个jTextFields),我希望它们在获得焦点时选择所有文本,并且在焦点丢失时不选择任何文本。Java 在大量jTextField中选择all on focus,java,swing,focus,jtextfield,selectall,Java,Swing,Focus,Jtextfield,Selectall,我的应用程序中有很多jTextFields(大约34个jTextFields),我希望它们在获得焦点时选择所有文本,并且在焦点丢失时不选择任何文本。 有没有办法用一个监听器做到这一点,或者我应该为这34个jTextField中的每一个写一个“FocusGa获”和一个“FocusLost” 谢谢为此任务创建一个类: static class FocusTextField extends JTextField { { addFocusListener(new FocusLis
有没有办法用一个监听器做到这一点,或者我应该为这34个jTextField中的每一个写一个“FocusGa获”和一个“FocusLost”
谢谢为此任务创建一个类:
static class FocusTextField extends JTextField {
{
addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
FocusTextField.this.select(0, getText().length());
}
@Override
public void focusLost(FocusEvent e) {
FocusTextField.this.select(0, 0);
}
});
}
}
用法示例(代码如下):
在类上创建并扩展JTextField,现在实现这个类中您想要的任何内容。在这里您可以像这样创建JTextField的对象
JTextField txt1 = new JTextField();
frm.add(txt1);
而不是这样做
JTextField txt1 = new CustomText();
frm.add(txt1);
因此,必须为文本字段设置公共类
有没有办法用一个听众做到这一点
您可以使用KeyboardFocusManager。参见。中的示例,我想说一个简单的方法是在单击时添加一个操作,只需选择全部
private void jTextField1MouseClicked(java.awt.event.MouseEvent evt) {
jTextField1.selectAll();
}
这并没有涵盖选择文本字段的所有其他方式:通过Swing/AWT调用进行制表、Alt制表。
private void jTextField1MouseClicked(java.awt.event.MouseEvent evt) {
jTextField1.selectAll();
}