Java,多类实例变量引用

时间:2013-10-29 22:07:02

标签: java

public class FrameViewer
{

    String csvName = "none";
    public static void main(String[] args)throws IOException
    {
        System.out.println("Which file would you like to open?" + " A - asia.csv" + " B - europe.csv" + " C - africa.csv");
        Scanner input = new Scanner(System.in);
        String csvName = input.next();

        if (csvName.equals("A"))
            csvName = "asia.csv";
        else if (csvName.equals("B"))
            csvName = "europe.csv";
        else if (csvName.equals("C"))
            csvName = "africa.csv";
        else
            System.out.println("You havent chosen a file.");

这里是我遇到问题的地方,我假设在下面创建canvas时,CountryComponent类会在CountryComponent方法中引用所做的选择中的'csvName',但它没有

我现在绝对迷失了,我想尝试将选择作为参数传递给getData方法,但我无法弄清楚如何传递选择本身,我不断收到错误

我离开了组件类中的实例变量csvName,因为它可能会导致问题,但是idk,它不会让我在没有它的情况下进行编译。

        JFrame frame = new JFrame();
        frame.setSize(750, 650);
        frame.setTitle("Country Data");
        CountryComponent canvas = new CountryComponent();
        frame.add(canvas);
        frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

组件类

public class CountryComponent extends JComponent
{

    // instance variables

    String csvName;   

    public void CountryComponent()throws IOException
    {

        getData(); 

    }

    public void getData()throws IOException
    {
       ...

这是我尝试过的,最后一次尝试,我已经尝试了20种不同的东西来尝试获取实际显示的信息。

 public void CountryComponent(String test)throws IOException
{
    String csv = test;
    getData(csv); 

}

public void getData(String csv1)throws IOException
{
    try
    {
        csvName = csv1;
        File csvFile = new File(csvName);

编译但FrameViewer类中的这一行给出了错误

CountryComponent canvas = new CountryComponent(csvName);

1 个答案:

答案 0 :(得分:0)

constructor必须没有void。它没有返回类型。

public CountryComponent() throws IOException
{
...
}

public CountryComponent(String test) throws IOException {
...
}