如何从一种方法中调用变量/或从中创建字段变量

时间:2018-12-28 18:06:29

标签: java

我需要使用气球2中的args[2]而不是1.12,与args[0]args[1]相同,但这是在程序的后面。有一个框架,我删除了它们的所有内容,以为该网站要我这样做。

import javax.swing.*;
import java.awt.*;

public class ProportionalBalons extends JPanel {

    public void runArguments(String[] args) {
        String currencyCostumerHas = args[0];
        String currencyCostumerWants = args[1];
        String USDollarToEUEuroexchangeValueS = args[2];
        int exchangeValue = new Integer(USDollarToEUEuroexchangeValueS).intValue();
    }


    public void paintComponent(Graphics g) {
        double balon1Diameter = costumerDeposit;
        double balon2Diameter = costumerDeposit * 1.12;
        //ballon 1
        g.drawOval(10, 10, balon1Diameter, balon1Diameter);
        //ballon 2 
        g.drawOval(60 * 8, 10, balon2Diameter, balon2Diameter);

    }
} 

2 个答案:

答案 0 :(得分:1)

您需要捕获从runArguments获得的信息。我认为实际上您想要的是一个构造函数

public class ProportionalBalons extends JPanel {
    private String currencyCostumerHas;
    private String currencyCostumerWants;
    private double exchangeRate = args[2];

    public ProportionalBalons(int currencyCustumerHas, String currencyCustumerWants, exchangeRate) {
        this.currencyCostumerHas = currencyCostumerHas;
        this.currencyCostumerWants = currencyCostumerWants;
        this.exchangeRate = exchangeRate;
    }

    public void paintComponent(Graphics g) {
        double balon1Diameter = costumerDeposit;
        double balon2Diameter = costumerDeposit * exchangeRate;
        //ballon 1
        g.drawOval(10, 10, balon1Diameter, balon1Diameter);
        //ballon 2 
        g.drawOval(60 * 8, 10, balon2Diameter, balon2Diameter);
    }
}

在这里,当您创建一个新的ProportionalBalons对象时,您将捕获自变量的值,并且它们对ProportionalBalons中定义的所有方法均可用。

一些注意事项:

  1. 我没有看到对“ currency”变量的任何使用,但是我把它们放在那里,因为看起来您实际上确实需要它们。
  2. 您现有的代码中没有customerDeposit的定义;我认为它在某个地方。如果必须的话,也可以在构造函数中捕获它。
  3. 汇率当然不应该是int。如果美元是1x2x欧元,请选择1x(我将获得美元付款)。我已将此设置为double

答案 1 :(得分:0)

如果您的args []变量是在paintComponent()和runArguments()方法之外声明和初始化的,那么您应该可以从paintComponent内对其进行调用。

double balon2Diameter=costumerDeposit*args[2];

如果该变量仅是局部变量,则它将不起作用。