今天解决之前查询宠物的时候宠物国籍和性别无法正常显示的问题
1.首先,我们需要把之前Animal类中的sex和nationality的类型全部改成String
有参构造Animal和sex和nationality的set和get中的都要改
2.在ddPet方法中宠物国籍这一块中,我们需要在添加动作监听器这里,设置宠物的国籍为用户所选国籍,并定义String类型的变量nationality,得到的宠物国籍赋值给nationality
ActionListener nationalityActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AbstractButton clickedNtionalityButton = (AbstractButton) e.getSource();
if (clickedNtionalityButton.isSelected()) {
//textArea.setText("宠物的国籍是:" + clickedButton.getText());
System.out.println(name + "的国籍是:" + clickedNtionalityButton.getText());
pet.setNationality(clickedNtionalityButton.getText());
String nationality = pet.getNationality(clickedNtionalityButton.getText());
}
}
};
这里修改之后会报错,我们在findPet中找到报错的地方,将划线部分删除,更改为pet.getNationality()
这里还是会报错(没截到图),我们把光标放在报错的地方,会看到本行的最左边有一个小灯泡,点一下如图所示的内容(这里用sex做示例,nationality的没截到)
再点一下continue即可
这样就解决了无法正常查看宠物国籍和性别的问题
同理,宠物性别也是一样的做法,这里就不赘述了
代码如图所示
ActionListener sexActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AbstractButton clickedSexButton = (AbstractButton) e.getSource();
if(clickedSexButton.isSelected()){
System.out.println(name + "的性别是:" + clickedSexButton.getText());
pet.setSex(clickedSexButton.getText());
String age = pet.getSex();
}
}
};
3.运行一下,看看效果