我知道它很容易,但是现在我做了大约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数据库,我只需要插入一些记录。
答案 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);
}
}
}
}