java - getText() 出现为 Null

标签 java swing oop

我正在尝试访问 JTextField 内的文本。我的 JTextField 是在我的 TextFields 类中定义的,我尝试添加文本字段的面板也是在我的 Panels 类中定义的。我的问题是我无法访问在文本字段中输入的文本。即使我尝试将文本设置为“TEST”,我仍然得到 null

我应该在 TextField 类还是 Panels 类中执行 panel.add 操作吗? 关于我需要做什么有什么想法吗?

面板类:

package nameSorting;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JPanel;

public class Panels extends JComponent {
    private JPanel north = new JPanel();
    private JPanel south = new JPanel();
    TextFields fields = new TextFields();
    Buttons buttons = new Buttons();
    ManipData addName = new ManipData();

    public JPanel north(){
        fields.firstNameField(north);

        JButton save = buttons.addSaveName();
        north.add(save);

        save.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e){
                System.out.println(fields.getFirstName());
            }
        });
        return north;
    }
    public JPanel south(){
        return south;
    }
}

TextFields 类:

package nameSorting;

import javax.swing.JPanel;
import javax.swing.JTextField;

public class TextFields {

    private JTextField inputFirstName = new JTextField();
    private JTextField inputLastName = new JTextField();
    private JTextField outPutFirstName = new JTextField();
    private JTextField outPutLastName = new JTextField();
    private JTextField showName = new JTextField();
    private String getFirstName;
    private String getLastName;

    public TextFields(){
        // here just in case I need it
    }
    public JTextField firstNameField(JPanel panel){
        inputFirstName.setColumns(10);
        inputFirstName.setText("TEST");
        panel.add(inputFirstName);
        return inputFirstName;
    }
    public void lastNameField(){
        //north.add(inputLastName);
    }
    public void clearFields(){
        inputFirstName.setText(null);
        inputLastName.setText(null);
    }
    public String getFirstName(){
        inputFirstName.getText();
        return getFirstName;
    }
    public String getLastName(){
        inputLastName.getText();
        return getLastName;
    }
    public JTextField showNames(){
        return showName;
    }
}

最佳答案

public String getFirstName(){
    inputFirstName.getText();
    return getFirstName;
}

这应该是

public String getFirstName(){
    return inputFirstName.getText();
}

并去掉 getFirstName 字段,该字段的命名也很糟糕。

关于java - getText() 出现为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30157653/

相关文章:

java - 在Android设备中运行CPU密集型任务

java - 如何使用applet、awt和swing在java中制作动画应用程序?

java - 在Java中如何在不在父类中声明该变量的情况下引用子类变量?

c# - OOP 中的数据库查询......设计模式?

java - JComboBox 和 JSpinner 的区别

php - 遍历 PHP 对象

java - 更新 CardLayout 的子级(面板)

java - 将 JSON 作为字符串存储在 DynamoDB 与列表/ map 类型中

java - 在 Eclipse 中是否有向现有构造函数添加字段的快捷方式?

java - JComponent 背景色使用 null 布局?