java - 从其他类访问 Java Swing TextField

标签 java swing textfield

我在使用 Java Swing 文本输入时遇到问题。我在类 A 中有一个方法 inputData() ,当我调用它时,该方法应该等待用户在类 中填写 TextField input >B 并按 ENTER。最后,inputData() 方法应该包含用户编写的文本。我该如何解决?

class A {
    B b = new B();
    public A() {
        inputData();
    }

    public char[] inputData() {
        // there I would like to get text 
        // from TextField from class B
    }
}

//-------------------------------

class B extends JFrame{
    private JTexField input;

    public B() {
    }

    private void inputKeyPressed(KeyEvent e) {                                   
        if (e.getKeyCode() == 10) {  // pressed ENTER
            input.getText()
            input.setText(null);
        }
    } 
}

最佳答案

您实际上可能不需要 JTextField。听起来您正在等待用户的一行输入,这实际上应该是一个 JOptionPane。此处描述了如何执行此操作:

http://download.oracle.com/javase/tutorial/uiswing/components/dialog.html#input

基本上,JOptionPane.showInputDialog() 会导致弹出一个窗口,其中包含一个文本字段和确定/取消按钮,如果您按回车键,它将接受您的输入。这消除了对另一个类的需要。

您将它放在您的 inputData() 方法中:

inputData()
{
    String input = JOptionPane.showInputDialog(...);
    //input is whatever the user inputted
}

如果这不是您要查找的内容并且您想要一个保持打开的文本字段,那么您真正想要的可能是 JTextField 旁边的“提交”按钮,它允许用户决定何时提交文本。在这种情况下,您可以:

class B extends JFrame
{
    private A myA;

    private JTextField input;

    private JButton submitButton;

    public B()
    {
        submitButton.addActionListener(new SubmitListener());
    }

    private class SubmitListener
    {
        //this method is called every time the submitButton is clicked
        public void actionPerformed(ActionEvent ae)
        {
            myA.sendInput(inputField.getText());
            //A will need a method sendInput(String)
        }
    }
}

关于java - 从其他类访问 Java Swing TextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285364/

相关文章:

java - 将自定义 java 规则添加到 pmd maven 插件

使用 LRU 的 Java 缓存模拟给出了不准确的命中率

java - 我看不到框架内的组件

java - 如何在Android中动态检索textField中的字符串输入?

input - Robot Framework 文本字段清除和输入

iphone - 如何在单个循环中添加多个 textField?

Java 大数数据类型

java - 如何改变java中算术运算符的优先级?

java - 无法显示 JTable 中的行(数据库中的值)

java - 在java中的GUI JFrame上定位图片