通过GUI java将用户输入添加到对象参数

时间:2015-11-28 18:13:28

标签: java swing user-interface

我尝试创建一个程序,该程序将从JTextField获取用户输入,并在单击JButton后将该输入添加到类CurrentAccount的对象中。到目前为止,我已经能够提出这个代码;

jButton1.addActionListener(new ActionListener() {    
    @Override
    public void actionPerformed(ActionEvent e)
    {


        //Execute when button is pressed
        String currentValue = jTextField1.getText() ;
        int val = Integer.parseInt(currentValue);
        balance = val;
        theAccount = new CurrentAccount(balance);
        System.out.println(theAccount.myBalance);



    }
});

但我收到的行是theAccount = new CurrentAccount(余额)。此外,我已经在方法之外实例化了帐户,因为我将需要它作为类SavingsAccount的对象,因为它是从这些继承的抽象类帐户。

如果有帮助,我的CurrentAccount代码如下;

public class CurrentAccount extends Account
{
    private int myBalance;
    private final ControlPanel myPane;


     private int balance;

    public CurrentAccount(ControlPanel myPane)
    {
       // balance= myBalance;
        myBalance = myPane.getDimension();
        this.myPane=myPane;
//        //super(balance);
        //if (100 >= myPane) throw new IllegalArgumentException
        //("A Savings Account can not have a balance of less than £100, you entered" + balance);
    }

对此的任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

您遇到此问题和此代码时遇到了几个问题。首先,您的编译错误消息已声明:

  

“不兼容的类型:int无法转换为ControlPanel”

此错误消息隐藏在评论中,不属于您的主要问题,因此很多人很难看到。请避免将来这样做,而是将其作为问题的重要部分。

错误消息告诉您到底出了什么问题 - 您正在尝试创建一个新的CurrentAccount对象,但是将int传递给它的构造函数:

theAccount = new CurrentAccount(balance);

但是构造函数已被定义为不接受int,而是接受ControlPanel对象:

public CurrentAccount(ControlPanel myPane) {

通常我会说,您需要更改构造函数以获取int,或者更改您调用它的方式,以便您只传入ControlPanel参数 - 无论哪个最有意义。但我不认为 在这里是合适的。我猜测(我们不能肯定地说,因为我们对你的整体程序结构还不够了解)一个CurrentAccount实例已经存在,而不是从头开始创建一个新的,你要去想要将余额信息传递到此实例中,可能使用setBalance(int balance)方法(如果存在)。

有关更好和更详细的答案,请告诉我们有关您的计划结构和问题的更多信息。