2012-08-31 24 views
0

我知道它很容易,但我吓坏做,现在约2小时,我不能似乎弄清楚为什么我无法从一个变量传递JTextArea价值的其他java文件,因为我分开我的ActionEvent代码从我的对象另一个文件(特别是JTextArea),找人出了什么毛病我的代码。的Java的getText的JTextField

actionlistener代码:

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文件我的巴顿和textarea的目标代码,这是我的AddInventory类:

ActionListener add = new ButtonAction.AddInv(); 
areaName = new JTextArea(2, 35); 
//my TextArea 
JButton buttonSave = new JButton("SAVE"); 
buttonSave.addActionListener(add); 

家伙,你可以试试这个代码,如果它告诉我正在你的电脑里工作。 ,因为我打算做的是将此文本区域值保存到我的数据库。

我已经连接oracle数据库,我只需要插入一些记录。

+0

*“告诉我它是否在你的电脑上工作”*这些代码片段不能在我的电脑中编译。发布[SSCCE](http://sscce.org/)。 –

+0

*“tnx guys”*您可以更好地表达问题,使问题更易于阅读。当包含文本消息样式缩写(如“tnx”)时,问题更难阅读。今后,请妥善拼写单词。 –

+0

@AndrewThompson嗯,我搞砸了,我是一个程序员,我不会拼写;)(点是有效的,只是无法抗拒) – MadProgrammer

回答

1

我会通过检查

addInv = new AddInventory(); 
s1 = addInv.areaName.getText(); 

的宗旨,以我做起,这个说,我创建一个新的AddInventory,给我的默认值是areaName文本字段......这可能是什么。 ..

UPDATE

还是同样的问题...

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); 
      } 
     } 
    } 
} 
+0

等待我很抱歉,但它应该被擦除,等待我只是修改代码。 – Zyrax

+0

那里现在编辑我很抱歉。 – Zyrax

+0

invName是一个字符串,所以我只是将JtextArea的值传递给字符串invName,但是当JOptionPane显示那里没有任何内容时它是空的。 – Zyrax