Java 实施“;经理”;类负责创建和存储对象

Java 实施“;经理”;类负责创建和存储对象,java,swing,user-interface,Java,Swing,User Interface,输入文本并按下按钮后,GUI应创建一个用户定义的Dog类实例,然后在下面的文本区域将其打印回GUI。Manager类应该负责使用数组创建和存储Dog对象。目前,我的代码将运行,但当输入文本并按下按钮时,我会收到一个错误消息:“Dog无法解析为变量”。如果能帮助我的代码正常工作,我们将不胜感激。谢谢 import javax.swing.*; import java.awt.*; import java.awt.event.*; class Manager { private Dog[]

输入文本并按下按钮后,GUI应创建一个用户定义的Dog类实例,然后在下面的文本区域将其打印回GUI。Manager类应该负责使用数组创建和存储Dog对象。目前,我的代码将运行,但当输入文本并按下按钮时,我会收到一个错误消息:“Dog无法解析为变量”。如果能帮助我的代码正常工作,我们将不胜感激。谢谢

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

class Manager {
    private Dog[] Dogs = new Dog[50];
    private int counter = 0;

    public void createDog(String name, String breed, String age) {
        Dogs[counter] = Dog;
        counter++;
    }

    public String returnLastDog() {
        return "Dog: " + Dogs[counter - 1] + "\n";

    }
}

class Dog {
    public String name;
    public String breed;
    public String age;

    // Constructs fields
    public Dog(String name, String breed, String age) {
        this.name = name;
        this.breed = breed;
        this.age = age;

    }

    public String setName(String Name) {
        this.name = name;
        return name;
    }

    public String setbreed(String breed) {
        this.breed = breed;
        return breed;
    }

    public String setage(String age) {
        this.age = age;
        return age;
    }

    public String toString() {
        return ("Name: " + this.name + " breed: " + this.breed + " age: " + this.age);
    }
}

public class LabFour extends JFrame implements ActionListener {
    public LabFour() {
        setLayout(new GridLayout(5, 1, 1, 1));

        // Creates TextField, TextArea, and button components
        name = new JTextField();
        breed = new JTextField();
        age = new JTextField();
        JButton jbtSubmit = new JButton("Submit");
        echoDog = new JTextArea();

        // Add TextField, TextArea, and button components to the frame
        add(new JLabel("Name: "));
        add(name);
        add(new JLabel("Breed: "));
        add(breed);
        add(new JLabel("Age: "));
        add(age);
        add(new JLabel("Submit Button: "));
        add(jbtSubmit);
        jbtSubmit.addActionListener(this);
        add(new JLabel("Submitted Text: "));
        add(echoDog);
        echoDog.setEditable(false);

    }

    // TextFields
    private JTextField name;
    private JTextField breed;
    private JTextField age;

    // Echo TextArea
    private JTextArea echoDog;

    // Manager Object
    private Manager m1 = new Manager();

    // Listener
    public void actionPerformed(ActionEvent a) {
        m1.createDog(name.getText(), breed.getText(), age.getText());
        echoDog.append(m1.returnLastDog());

    }

    // Main
    public static void main(String[] args) {
        LabFour frame = new LabFour();
        frame.setTitle("Dog Interface");
        frame.setSize(1200, 900);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

}

您需要创建
Dog
的实例以分配给数组元素

dogs[counter] = new Dog(name, breed, age);

您需要创建
Dog
的实例以分配给数组元素

dogs[counter] = new Dog(name, breed, age);

您需要创建
Dog
的实例以分配给数组元素

dogs[counter] = new Dog(name, breed, age);

您需要创建
Dog
的实例以分配给数组元素

dogs[counter] = new Dog(name, breed, age);

非常感谢。现在看来这很明显。一旦系统允许,我将接受您的回答。:)非常感谢。现在看来这很明显。一旦系统允许,我将接受您的回答。:)非常感谢。现在看来这很明显。一旦系统允许,我将接受您的回答。:)非常感谢。现在看来这很明显。一旦系统允许,我将接受您的回答。:)