Java 访问JTextField文本
我有一个简单的程序,我试图从textfield访问数据,但我总是得到null或空字段 举个例子Java 访问JTextField文本,java,swing,jtextfield,Java,Swing,Jtextfield,我有一个简单的程序,我试图从textfield访问数据,但我总是得到null或空字段 举个例子 public class income { JButton save = new JButton("save"); public JTextField setIncomeValue() { .. .. JTextField incomeValue = new JTextField(10); return incomeValue; } public void
public class income {
JButton save = new JButton("save");
public JTextField setIncomeValue() {
..
..
JTextField incomeValue = new JTextField(10);
return incomeValue;
}
public void launch_Ui{
frame.add(setIncomeValue());
frame.add(save);
save.addactionlistener(new saveListener());
}
}
class saveListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
String test = new income().setIncomeValue().getText();
System.out.println("savings... " + test + " value ?");
}
}
以前有人知道或者偶然遇到过这个挑战吗?每次调用
setIncomeValue()
都会创建一个新对象,所以每次都会得到null
在JButton save
旁边添加JTextField
成员,并保留对第一个setIncomeValue()的引用。
:
这将起作用,因为
SaveListener
是类Income
的内部类(请使用大写字母作为类名),因此可以访问其母类的成员。更新
仔细研究了我的逻辑之后,我终于找到了一个解决方案。我所做的是在我的savelistener中创建一个作用域
class saveListener implements ActionListener{
JTextField incomeData;
public saveListener(JTextField incomeData) {
this.incomeData = incomeData;
}
@Override
public void actionPerformed(ActionEvent e) {
String test = incomeData.getText();
System.out.println("Input data " + test);
}
}
希望这将帮助那些需要帮助的人:)您每次都在setter中创建一个新的文本字段。将此字段设为字段并在构造函数中创建它。。。你也在听众中创造新的“收入”。这也行不通。这个问题表明你对编程相当陌生。如果是这样的话,我强烈建议您学习一些命令行基础教程,以便更好地掌握基础知识,例如在何处创建和使用对象实例。否则,您在UI开发中会遇到很多陷阱和麻烦。如果您对找到的解决方案感到满意,请将其添加为答案并接受,而不是编辑您的问题。“那会帮助别人的。”马修明白了,谢谢。只需要一天,我就可以接受它作为答案。:)谢谢您还可以从问题中删除该部分以使其完整:)
class saveListener implements ActionListener{
JTextField incomeData;
public saveListener(JTextField incomeData) {
this.incomeData = incomeData;
}
@Override
public void actionPerformed(ActionEvent e) {
String test = incomeData.getText();
System.out.println("Input data " + test);
}
}