当前位置: 首页 > 知识库问答 >
问题:

如何获取特定JTextfield的索引?

时衡虑
2023-03-14

假设我有一个Jextfield数组(例如JTextfield[10])。我将它们添加到框架中。现在用户在文本字段中随机输入文本,例如用户首先输入索引为5的文本字段,然后是9,然后是2,依此类推。不一定要填充所有的文本字段。

我的问题是,如何获取文本字段的索引,并在用户输入文本时同时打印索引,这意味着如果用户在文本字段中输入索引5,我应该能够获得索引5,然后如果填充了索引9的文本字段,则打印9,依此类推。

共有1个答案

郦楷
2023-03-14

FocusListener添加到数组中的每个JTextField,就可以实现目标。看看这样的东西,

import javax.swing.*;
import java.awt.event.*;

class indexTest extends JFrame {

    public indexTest() {
        super();
        initComponents();
    }

    private void initComponents() {

        setSize(400, 250); // setting frame size

        JTextField jTextField1 = new JTextField();
        JTextField jTextField2 = new JTextField();
        JTextField jTextField3 = new JTextField();
        JTextField jTextField4 = new JTextField();
        JTextField jTextField5 = new JTextField();

        TextFocusListener focusListener = new TextFocusListener();

        jTextField1.addFocusListener(focusListener);
        jTextField2.addFocusListener(focusListener);
        jTextField3.addFocusListener(focusListener);
        jTextField4.addFocusListener(focusListener);
        jTextField5.addFocusListener(focusListener);

        JTextField jTextField[] = new JTextField[]{jTextField1, jTextField2, jTextField3, jTextField4, jTextField5};
        int posY = 10;

        for (int i = 0; i < jTextField.length; i++) {
            JTextField textField = jTextField[i];
            textField.setName("textField " + i);
            textField.setBounds(10, posY, 100, 15);
            getContentPane().add(textField);
            posY += 20;
        }
    }
}

class TextFocusListener implements FocusListener {

    @Override
    public void focusGained(FocusEvent e) {
        System.out.println(((JTextField) e.getSource()).getName());
    }

    @Override
    public void focusLost(FocusEvent e) {
        //todo your user logic goes here // Ex: check user actually entered value or not
    }
}

class RunFrame {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            indexTest indexTest = new indexTest();
            indexTest.setVisible(true);
        });
    }
}
 类似资料:
  • 问题内容: 我有一个数组,只是想在索引1处获取元素。 如何在JavaScript中数组的第一个索引处获取值? 问题答案: 只需使用

  • 问题:我想知道是否可以从DocumentFilter获取JTextfield类型 我读过java文档,搜索了很多,但没有找到任何信息。 需要:我在两个JTextfields上设置了相同的DocumentFilter。当事件发生时,在DocumentFilter的“replace”方法中,我想知道哪个textfield导致了事件。 用例:我有大约15个文本字段(未来可能会增加),我希望对所有这些字段

  • 问题内容: 有什么方法可以简化此代码,以获取提供的某一列的索引以获取特定行的索引吗?在这种情况下,索引将为,因为我要遍历第一列直到找到“ A”。感觉应该对此有一个linq解决方案,但我无法弄清楚。 问题答案: 如果使用DataTableExtensions.AsEnumerable()方法,则可以使用LINQ查询您的DataTable。然后,您可以用来确定给定谓词的索引:

  • 问题内容: 我有一个NumPy数组,我想检索除某个索引以外的所有元素。例如,考虑以下数组 如果我指定索引3,则结果应为 问题答案: 像调整大小一样,从NumPy数组中删除元素是一个缓慢的操作(特别是对于大型数组,因为它需要分配空间并将所有数据从原始数组复制到新数组)。如果可能,应避免使用。 通常,您可以通过使用蒙版数组来避免这种情况。例如,考虑数组: 我们可以在索引3处屏蔽它的值,并且可以执行 忽

  • 消息收件人用户或GroupChat id的整数唯一标识符