java宠物商店项目代码,我需要若干个宠物的类如Cat,Dog用来输入宠物的颜色,年龄,名字和出售价格。还需要一个Pet的类用来修改宠物信息并且拥有删除功能,还需要用java swing来实现用户界面,这个界面中选择不同的宠物类会跳转相应到的界面。最后大部分代码需要标记好注释
时间: 2024-03-19 12:43:24 浏览: 14
好的,以下是一个简单的宠物商店项目代码示例,包括Cat、Dog和Pet类,以及基本的Swing用户界面。
Cat类:
```java
public class Cat {
private String color;
private int age;
private String name;
private double price;
public Cat(String color, int age, String name, double price) {
this.color = color;
this.age = age;
this.name = name;
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
```
Dog类:
```java
public class Dog {
private String color;
private int age;
private String name;
private double price;
public Dog(String color, int age, String name, double price) {
this.color = color;
this.age = age;
this.name = name;
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
```
Pet类:
```java
import java.util.ArrayList;
import java.util.List;
public class Pet {
private List<Cat> cats = new ArrayList<>();
private List<Dog> dogs = new ArrayList<>();
public void addCat(Cat cat) {
cats.add(cat);
}
public void addDog(Dog dog) {
dogs.add(dog);
}
public void removeCat(Cat cat) {
cats.remove(cat);
}
public void removeDog(Dog dog) {
dogs.remove(dog);
}
public List<Cat> getCats() {
return cats;
}
public List<Dog> getDogs() {
return dogs;
}
}
```
Swing用户界面:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PetUI extends JFrame {
private JPanel mainPanel;
private JButton catButton;
private JButton dogButton;
private JPanel catPanel;
private JPanel dogPanel;
private JTextArea catTextArea;
private JTextArea dogTextArea;
private JTextField catColorField;
private JTextField catAgeField;
private JTextField catNameField;
private JTextField catPriceField;
private JButton catAddButton;
private JButton catRemoveButton;
private JTextField dogColorField;
private JTextField dogAgeField;
private JTextField dogNameField;
private JTextField dogPriceField;
private JButton dogAddButton;
private JButton dogRemoveButton;
private Pet pet = new Pet();
public PetUI() {
super("Pet Shop");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel = new JPanel(new CardLayout());
catButton = new JButton("Cats");
catButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
CardLayout cardLayout = (CardLayout) mainPanel.getLayout();
cardLayout.show(mainPanel, "catPanel");
}
});
mainPanel.add(catButton);
dogButton = new JButton("Dogs");
dogButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
CardLayout cardLayout = (CardLayout) mainPanel.getLayout();
cardLayout.show(mainPanel, "dogPanel");
}
});
mainPanel.add(dogButton);
catPanel = new JPanel(new BorderLayout());
catTextArea = new JTextArea();
catTextArea.setEditable(false);
catPanel.add(catTextArea, BorderLayout.CENTER);
JPanel catInputPanel = new JPanel(new GridLayout(5, 2));
catInputPanel.add(new JLabel("Color:"));
catColorField = new JTextField();
catInputPanel.add(catColorField);
catInputPanel.add(new JLabel("Age:"));
catAgeField = new JTextField();
catInputPanel.add(catAgeField);
catInputPanel.add(new JLabel("Name:"));
catNameField = new JTextField();
catInputPanel.add(catNameField);
catInputPanel.add(new JLabel("Price:"));
catPriceField = new JTextField();
catInputPanel.add(catPriceField);
catAddButton = new JButton("Add");
catAddButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String color = catColorField.getText();
int age = Integer.parseInt(catAgeField.getText());
String name = catNameField.getText();
double price = Double.parseDouble(catPriceField.getText());
Cat cat = new Cat(color, age, name, price);
pet.addCat(cat);
updateCatTextArea();
}
});
catInputPanel.add(catAddButton);
catRemoveButton = new JButton("Remove");
catRemoveButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int index = catTextArea.getSelectedIndex();
if (index != -1) {
Cat cat = pet.getCats().get(index);
pet.removeCat(cat);
updateCatTextArea();
}
}
});
catInputPanel.add(catRemoveButton);
catPanel.add(catInputPanel, BorderLayout.SOUTH);
mainPanel.add(catPanel, "catPanel");
dogPanel = new JPanel(new BorderLayout());
dogTextArea = new JTextArea();
dogTextArea.setEditable(false);
dogPanel.add(dogTextArea, BorderLayout.CENTER);
JPanel dogInputPanel = new JPanel(new GridLayout(5, 2));
dogInputPanel.add(new JLabel("Color:"));
dogColorField = new JTextField();
dogInputPanel.add(dogColorField);
dogInputPanel.add(new JLabel("Age:"));
dogAgeField = new JTextField();
dogInputPanel.add(dogAgeField);
dogInputPanel.add(new JLabel("Name:"));
dogNameField = new JTextField();
dogInputPanel.add(dogNameField);
dogInputPanel.add(new JLabel("Price:"));
dogPriceField = new JTextField();
dogInputPanel.add(dogPriceField);
dogAddButton = new JButton("Add");
dogAddButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String color = dogColorField.getText();
int age = Integer.parseInt(dogAgeField.getText());
String name = dogNameField.getText();
double price = Double.parseDouble(dogPriceField.getText());
Dog dog = new Dog(color, age, name, price);
pet.addDog(dog);
updateDogTextArea();
}
});
dogInputPanel.add(dogAddButton);
dogRemoveButton = new JButton("Remove");
dogRemoveButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int index = dogTextArea.getSelectedIndex();
if (index != -1) {
Dog dog = pet.getDogs().get(index);
pet.removeDog(dog);
updateDogTextArea();
}
}
});
dogInputPanel.add(dogRemoveButton);
dogPanel.add(dogInputPanel, BorderLayout.SOUTH);
mainPanel.add(dogPanel, "dogPanel");
add(mainPanel);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void updateCatTextArea() {
catTextArea.setText("");
for (Cat cat : pet.getCats()) {
catTextArea.append(cat.getName() + " (" + cat.getColor() + ", " + cat.getAge() + ") - $" + cat.getPrice() + "\n");
}
}
private void updateDogTextArea() {
dogTextArea.setText("");
for (Dog dog : pet.getDogs()) {
dogTextArea.append(dog.getName() + " (" + dog.getColor() + ", " + dog.getAge() + ") - $" + dog.getPrice() + "\n");
}
}
public static void main(String[] args) {
new PetUI();
}
}
```
这个示例代码只是一个基本的框架,你可以根据实际需求进行修改和扩展。注意在实际项目中,需要进行更多的错误检查和异常处理。