今天接着做addPet
这里的宠物性别和宠物国籍的思路是一样的,也需要使用JFrame、RadioButton单选按钮、ButtonGroup、JScollPane、ActionListener。
1.首先,创建一个性别框,同时设置默认关闭操作
JFrame sexFrame = new JFrame();
sexFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
2.创建一个新的性别组以及两个单选按钮
ButtonGroup sexGroup = new ButtonGroup();
JRadioButton male = new JRadioButton("公");
JRadioButton female = new JRadioButton("母");
3.将单选按钮“male”和单选按钮“famale”分别加入到性别组中
sexGroup.add(male);
sexGroup.add(female);
4.创建新的文本区域,创建新的滚动面板
JTextArea sexText = new JTextArea();
JScrollPane sexScrollPane =new JScrollPane(sexText);
5.设置新的文本区域为只读
sexText.setEditable(false);
6.创建新的性别监听器
ActionListener sexListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AbstractButton clickedSex = (AbstractButton) e.getSource();
if(clickedSex.isSelected()){
System.out.println(clickedSex.getText());
}
}
};
7.分别给两个单选按钮加上性别监听器
male.addActionListener(sexListener);
female.addActionListener(sexListener);
8.创建一个新的性别面板,创建新的设置性别布局
JPanel sexPanel = new JPanel();
JPanel setSexLayout = new JPanel(new BoxLayout(sexPanel, BoxLayout.Y_AXIS));
9.将male和female分别加入到性别面板中,并给二者创建水平结构
sexPanel.add(male);
sexPanel.add(Box.createHorizontalStrut(100));//创建水平结构
sexPanel.add(female);
sexPanel.add(Box.createHorizontalStrut(100));
10.分别把性别面板和性别滚动面板加入到性别框中,并设置二者的边界
sexFrame.getContentPane().add(sexPanel, BorderLayout.NORTH);
sexFrame.getContentPane().add(sexScrollPane, BorderLayout.EAST);
11.设置性别框大小,并使之可视化
sexFrame.pack();
sexFrame.setVisible(true);
运行的时候,需要把之前addPet中和国籍有关的代码屏蔽掉,因为这两好像不能同时出现,关于这个和价格在性别还没有选好的时候就已经出来的问题后续都会解决的。
此外,这个性别框是可以用鼠标拖动的。