Java getText JTextField

时间:2012-08-31 05:39:43

标签: java swing actionlistener jtextarea

我知道它很容易,但是现在我做了大约2个小时,我似乎无法弄清楚为什么我不能将JTextArea值从变量传递给其他java文件,因为我分开了我的ActionEvent代码到我的对象的另一个文件(特别是JTextArea),我们发现我的代码出了什么问题。

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文件的我的Button和textarea对象代码,这是我的班级AddInventory

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

伙计们,您可以尝试使用此代码并告诉我它是否适用于您的计算机工作人员。 因为我打算做的是将此文本区域值保存到我的数据库中。

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

1 个答案:

答案 0 :(得分:1)

我首先要研究

的目的
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);
            }   
        }
    }
}