Java getText JTextField
我知道这很容易,但我现在已经做了2个小时了,我似乎不明白为什么我不能将Java getText JTextField,java,swing,actionlistener,jtextarea,Java,Swing,Actionlistener,Jtextarea,我知道这很容易,但我现在已经做了2个小时了,我似乎不明白为什么我不能将JTextArea值从一个变量传递到其他java文件,因为我将ActionEvent代码从我的对象分离到另一个文件(特别是JTextArea),伙计们找出我的密码出了什么问题 actionlistenercode: public class ButtonAction{ public static class AddInv implements ActionListener{ public void action
JTextArea
值从一个变量传递到其他java文件,因为我将ActionEvent
代码从我的对象分离到另一个文件(特别是JTextArea
),伙计们找出我的密码出了什么问题
actionlistener
code:
public class ButtonAction{
public static class AddInv implements ActionListener{
public void actionPerformed(ActionEvent e){
AbstractButton inv = (AbstractButton)e.getSource();
AddInventory addInv = new AddInventory();
if(inv.getActionCommand().equals("SAVE")){
invName = addInv.areaName.getText();
JOptionPane.showMessageDialog(null, invName);
}
}
}
}
这是另一个java文件中的我的按钮和文本区域对象代码,这是我的类AddInventory
:
ActionListener add = new ButtonAction.AddInv();
areaName = new JTextArea(2, 35);
//my TextArea
JButton buttonSave = new JButton("SAVE");
buttonSave.addActionListener(add);
伙计们,你们可以试试这个代码,告诉我它是否在你们的电脑里工作吗。
因为我计划做的是将这个文本区域值保存到我的数据库中
我已经连接了oracle数据库,我只需要插入一些记录。我首先要检查
addInv = new AddInventory();
s1 = addInv.areaName.getText();
对我来说,这意味着,为我创建一个新的AddInventory
,并给我它的areaName
文本字段的默认值…这可能什么都不是
更新
还是一样的问题
AddInventory addInv = new AddInventory();
if(inv.getActionCommand().equals("SAVE")){
invName = addInv.areaName.getText();
JOptionPane.showMessageDialog(null, invName);
}
如何,您需要将对文本区域的引用传递给操作
更新示例
理想情况下,您需要某种控制器/模型来处理此问题,但作为示例
areaName = new JTextArea(2, 35);
ActionListener add = new ButtonAction.AddInv(areaName);
//my TextArea
JButton buttonSave = new JButton("SAVE");
buttonSave.addActionListener(add);
你的动作课
public class ButtonAction{
public static class AddInv implements ActionListener{
private JTextArea text;
public AddInv(JTextArea text) {
this.text = text;
}
public void actionPerformed(ActionEvent e){
AbstractButton inv = (AbstractButton)e.getSource();
if(inv.getActionCommand().equals("SAVE")){
invName = text.getText();
JOptionPane.showMessageDialog(null, invName);
}
}
}
}
等等,对不起,它应该被删除,等等,我只是编辑代码。invName是一个字符串,所以我只是将JtextArea值传递给字符串invName,但当JOptionPane显示其中没有任何内容时,它是空的。我的意思是,用户应该或将要输入,一旦单击按钮,它应该传递给变量,为什么传递空值,据我所知,一旦用户单击按钮,它将有一个值,因此它将不是空值。您有一个引用问题。您试图从中获取值的
AddInventory
实例与用户用于输入数据的实例不同…因此,您获取值的原因是null
或空…好的,现在我明白了,如果无法引用该值,如何获取该值?“告诉我它是否在您的计算机中工作”那些代码片段不能在我的计算机中编译。发表一篇“tnx伙计们”的帖子,让问题更容易阅读,可以更好地表达你们的感谢。当一个问题包含像“tnx”这样的短信式缩写词时,它就更难理解了。将来,请正确拼写单词。@AndrewThompson啊,我完蛋了,我是个程序员,我不会拼写;)(这一点是正确的,只是忍不住)谢谢你的提醒,我会记住这一点。@Mad“我完蛋了,我是个程序员,我不会拼写”我很幸运,我生活在第三个千年,我不会拼写-我有一个拼写检查器帮我做这件事