使用CTRL+选择更多文本字段;Java语言中的一种语言
我在Java中有更多的文本字段。当我按下CTRL+A时,我希望所有的文本字段都被选中。 我尝试了这种方法,但只有具有焦点的文本字段被选中 你能帮帮我吗使用CTRL+选择更多文本字段;Java语言中的一种语言,java,selection,textfield,Java,Selection,Textfield,我在Java中有更多的文本字段。当我按下CTRL+A时,我希望所有的文本字段都被选中。 我尝试了这种方法,但只有具有焦点的文本字段被选中 你能帮帮我吗 class Main{ public JTextField[] textFields; private TextFieldSelected(int byteCount) { textFields = new JTextField[byteCount]; for (int i = 0; i < textFields.le
class Main{
public JTextField[] textFields;
private TextFieldSelected(int byteCount) {
textFields = new JTextField[byteCount];
for (int i = 0; i < textFields.length; i++) {
textFields[i] = new JTextField(3);
}
private class CtrlAAdapter extends KeyAdapter {
public void keyPressed(KeyEvent e) {
//JTextField textField = (JTextField) e.getComponent();
if(KeyEvent.VK_CONTROL == e.getKeyCode() && e.getModifiers() == 0)
if(KeyEvent.VK_A == e.getKeyCode() && e.getModifiers() ==0)
new SelectAllListener();}}
// for(int i=0; i < textFields.length; i++) textFields[i].selectAll();
class SelectAllListener implements ActionListener {
public void actionPerformed(ActionEvent ev) {
for(int i=0; i < textFields.length; i++){
//JTextField field = textFields[i];
// String text=textFields[i].getText();
// textArea.append(text);
textFields[i].selectAll();
}
}
// reset();
// e.consume();
}
主类{
公共JTextField[]textFields;
已选择私有文本字段(整数字节计数){
textFields=newjtextfield[byteCount];
for(int i=0;i
}
我改了,但还是不行:
for (int i = 0; i < textFields.length; i++) {
JTextField textField = textFields[i];
textField.getDocument().addDocumentListener(documentListener);
KeyBindings keybindings = new KeyBindings(textField);
}
for(int i=0;i
类键绑定{
public KeyBindings(JTextField textField){
Action action = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
for(int i=0;i < textFields.length; i++){
JTextField textField = textFields[i];
for(int j=0;j < textFields.length; j++){
textFields[j].selectAll();
textFields[j].transferFocus();
}
}
}
};
String keyStrokeAndKey = "control A";
KeyStroke keyStroke = KeyStroke.getKeyStroke(keyStrokeAndKey);
textField.getInputMap().put(keyStroke, keyStrokeAndKey);
textField.getActionMap().put(keyStrokeAndKey, action);
}
}
公钥绑定(JTextField textField){
Action Action=newAbstractAction(){
@凌驾
已执行的公共无效操作(操作事件e){
for(int i=0;i
如何使未聚焦字段也显示所选内容?
KeyListener
有一个很好的限制。它注册的组件必须具有焦点,并且在接收关键事件之前可以聚焦
为了接收此消息,您应该使用API
基本上,在包含文本字段的容器中注册一个击键
,确保在聚焦窗口中使用时。浏览组件列表,查找JTextField
并在字段上调用selectAll
您可能遇到的另一个问题是,未聚焦字段可能不会显示选择项。KeyListener有一个很好的限制。它注册的组件必须具有焦点,并且在接收键事件之前可以聚焦
为了接收此消息,您应该使用API
基本上,在包含文本字段的容器中注册一个击键
,确保在聚焦窗口
中使用时。浏览组件列表,查找JTextField
并在字段上调用selectAll
您可能遇到的另一个问题是,未聚焦字段可能无法显示选择内容我以前问过的同一个问题,这里是答案单击此链接我以前问过的同一个问题,这里是答案单击[此链接][1][1]:我不知道你的例子做了什么…我以前问过的同一个问题,这里是答案单击此链接我以前问过的同一个问题,这里是答案单击[此链接][1][1]:我不知道你的例子做了什么…我试过另一种方法:for(int I=0;I